`

RSA加密

 
阅读更多

RSA加密案例

 

public class EcosystemAction extends BaseAction{

 

private static Logger logger = Logger.getLogger(EcosystemAction.class);

private static final long serialVersionUID = 1L;

//加密密钥

private static String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIOQecuF0/5OcP8615TDHlgOa+CB SSUM3R8qvHgA3gFkT7lzV6MYbST11Pf/xJ0vS4ka7rqvt+w7+qResi+ww2oKfFnnANlXJZhpAZoF RrM6MWsBipt7VwCFaW1E9XkJRsnCzCyJsykt6HerQFKcPOay1PMWOowKfYPZ1bsGKlalAgMBAAEC gYBLa82GkQfAp7M7fb4Md/azQEEziKon5UH2FgfJO6YJYjoZ9DdvNheLsqoOKb/K5EwHIztsJkPn 11KOXAMGN+0tzfDyOWnDYem1TXVMv/4hAUhWfsyfwemdRRBNDyhwkcnT/H++wl8ULyl3tcGc792D ukkZesIfwOyIS5uB5Fr4wQJBANgEvbzXbTA+A7LG9Qa60SLzRrgV/RBVv/1Eca9HOYL8hpXh1GyU PTYyXtQJiN3ol2kXdth/biGWCgHlTO9bWR0CQQCb6i24xx55pVBVLkTatnMtZ/sb/DnompXIhotE a8JuvQZBrCpISAwEz2JsR9F13eLWsBc38RfrhNC4a1DwoYUpAkB1dE5+SVwTKQT1xfwghp+EM2a2 XS5WHWngmcB+n2mD8S50fG/2AbwupcCt5elHT1pUR+/U06TcGiqi0Ty9wJt5AkBR/lA3KTgEnwRl F2UMZACkM1eiOv21Ln5wqxjYTZc9p1h/9utxgboYWXuYGBi2VI7zej1rpPWAXSNqqL0zHq4pAkEA vubjdgB6tigP8OdtJ8wYrXFtyQD8eqU0n+GJwBiq3XCB+tWWBdSn66TfjtWC9J7JfUGocLdhd6E7GV+r4s2opg==";

public String doDefault(){

HttpServletRequest request = getRequest();

String skipurl = request.getParameter("url");

 

RoleService roleService = (RoleService) getService(RoleService.class);

 

//UM账号

String um = getString(Constants.ADMIN_UID, getSession());

 

String userid = getString(Constants.ADMIN_USER_ID,getSession());

//姓名

String xm = getString(Constants.ADMIN_USER_NAME, getSession());

//session有效期

int sessionDeadline = 120;

//登录时间

long timestamp = System.currentTimeMillis();

 

//菜单权限

List role = roleService.findRoleByUserId(userid);

 

UserInfo userInfo = new UserInfo(um, xm, sessionDeadline, timestamp, role);

 

String param = new Gson().toJson(userInfo);

try {

//私钥加密

byte[] encryStrbyte = RSAUtils.encryptByPrivateKey(param.getBytes(), privateKey);

String encryStr = RSAUtils.encryptBASE64(encryStrbyte);

//签名

String sign = URLEncoder.encode(RSAUtils.sign(encryStrbyte, privateKey),"UTF-8");

//参数

String reqparam = URLEncoder.encode(encryStr, "UTF-8");

logger.info(reqparam);

getResponse().sendRedirect(skipurl+"?reqparam="+reqparam+"&sign="+sign);

} catch (Exception e) {

logger.info("参数加密失败");

e.printStackTrace();

}

return null;

}

 

    public static String getString(String name, HttpSession session)

    {

        Object value = session.getAttribute(name);

        if (value == null)

        {

            return "";

        }

        return value.toString().trim();

    }

 

}

 

RSA加解密大致过程:

加密:由密钥对参数的二进制进行加密,同时根据二进制数据生成签名,然后进一步对二进制数据进行BASE64加密。

解密:获取参数,对参数进行BASE64解密,由签名对应的密钥对解密后的数据进行验证,验证通过后再经对应的密钥去解密数据。

 

密钥可由RSAUtis自动生成一对公钥和私钥,工具类见jar包

附件jar是自己写的过滤器,用来解密及存取参。demo自己研究,就是一个使用的过程,其中工具类做了转位操作,为防止参数过长加解密失败

分享到:
评论

相关推荐

    易语言 rsa加密 易语言 rsa加密易语言 rsa加密

    易语言 rsa加密 易语言 rsa加密易语言 rsa加密

    RSA加密解密工具,用于文件的加密和解密* RSA加密解密:私钥解密,公钥加密

    在本压缩包中,提供了RSA加密解密的工具——PRO_TDES_RSA.exe,这是一个执行程序,能够帮助用户对文件进行加密和解密操作。结合"RSATool工具简易操作指南 .doc",用户可以详细了解如何使用这个工具来保护他们的敏感...

    rsa.zip_QT RSA加密算法_Qt rsa加密_qt rsa加密步骤_rsa_rsa算法 qt

    在本项目中,"rsa.zip_QT RSA加密算法_Qt rsa加密_qt rsa加密步骤_rsa_rsa算法 qt",开发者已经实现了RSA加密算法,并结合Qt创建了一个具有图形界面的应用,使得加密过程更为直观易用。 首先,我们来深入理解RSA...

    java js RSA加密支持超长加密

    RSA加密是一种非对称加密算法,它基于两个不同的密钥:公钥和私钥。在Java和JavaScript中实现RSA加密,对于处理较长的数据至关重要,因为这两种语言的标准库默认的RSA加密只能处理相对较小的块。这里我们将深入探讨...

    RSA加密算法实验报告.pdf

    "RSA加密算法实验报告.pdf" 本实验报告主要介绍了RSA加密算法的实现和原理,包括密钥对的产生、加密和解密过程、数字签名等。下面是该实验报告的详细知识点总结: 一、RSA加密算法的原理 RSA加密算法是基于大数...

    RSA加密算法在VB中的实现.rar_RSA VB_VB RSA_rsa加密算法_vb rsa_vb 加密

    RSA加密算法是公钥密码学领域的一个里程碑,它由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大整数因子分解的困难性,使得它在信息安全领域被广泛用于数据加密和数字签名。在...

    unity工具类RSA加密和解密

    本文将深入探讨RSA加密和解密的基础知识以及如何在Unity中实现这一功能。 首先,RSA加密的核心原理是基于大整数因子分解的困难性。它生成一对密钥:公钥和私钥。公钥可以公开,用于加密;而私钥必须保密,用于解密...

    C# RSA加密解密

    **C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...

    rsa加密算法(Delphi实现).zip

    只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。 RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想...

    POSTMAN RSA加密 - forge.js

    POSTMAN RSA加密是一种在Postman测试工具中使用RSA加密技术的方法,主要涉及到JavaScript库Forge.js。Forge.js是一个强大的开源加密库,提供了多种加密算法,包括RSA(Rivest-Shamir-Adleman),这对于安全地传输...

    C++写的实现RSA加密

    C++实现RSA加密 在这里,我们将详细介绍C++实现RSA加密的知识点。 标题分析 该标题表明了这个项目的主要内容是使用C++语言实现RSA加密算法。RSA加密是一种常用的非对称加密算法,广泛应用于数据加密和身份验证等...

    C# 实现与JAVA互通 加签/验签,RSA加密/解密

    * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。  * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。  * RSA加密解密:私钥...

    RSA.zip_RSA 加密解密_rsa_rsa加密算法_rsa加密解密_rsa加密解密算法

    本资源提供了RSA加密解密的源码,适用于学习和理解RSA算法的工作原理及其实现。 首先,RSA算法的核心原理基于大数的因式分解困难性。它由三位科学家Rivest、Shamir和Adleman于1977年提出,因此得名RSA。该算法包括...

    PB12.5可实用的RSA加密算法(源码含Demo).zip

    RSA加密算法是一种非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,是现代密码学的基石之一。在PowerBuilder(PB)开发环境中,使用RSA算法可以实现数据的安全传输和存储。PB12.5是Power...

    rsa加密前后端交互.前端加密后端解密

    RSA加密是一种非对称加密算法,它在网络安全和数据保护中扮演着重要角色。在前后端交互中,RSA加密常用于保障数据传输的安全性,防止数据在传输过程中被窃取或篡改。以下是对RSA加密及其在前后端交互中应用的详细...

    RSA加密解密(C#)实现

    RSA加密解密C#实现调用实例 public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString) { try { byte[] PlainTextBArray; byte[] CypherTextBArray; string Result; System.Security....

    pb_rsa.zip_PB做加密解密_RSA PB_pb 加密_rsa pb_rsa加密

    用PowerBuilder实现RSA加密算法

    RSA加密算法的C语言实现

    RSA加密算法是公钥密码学领域的一个里程碑,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它是一种非对称加密算法,即加密和解密使用不同的密钥,极大地提高了安全性。在C语言中实现RSA...

    RSA.rar_RSA加密文件_RSA加密解密和_rsa加密算法_对称 加密文件_对称加密

    10. **源代码与实践**:提供的RAR文件可能包含RSA加密和解密的源代码及可执行文件,这对于学习密码学理论和实践非常有价值。通过阅读和运行这些代码,可以深入理解RSA的工作机制。 总之,RSA加密算法是现代密码学的...

    RSA加密所需要的js

    RSA加密是一种非对称加密算法,它在网络安全和数据保护领域广泛应用。该算法基于大整数因子分解的困难性,即找到两个大素数的乘积的因数是非常困难的。这种特性使得RSA成为一种安全的数据加密手段,常用于网络传输中...

Global site tag (gtag.js) - Google Analytics