RSA1024bit加减密算法

填充方式是:PKCS1_PADDING   
字符集是:gb2312


秘钥位数是: 1024bit
秘钥格式是:PKCS#8
页面使用公钥加密 加密算法是jsencrypt.min.js

页面写法如下:
        var encrypt = new JSEncrypt();  
	    encrypt.setPublicKey(publicKey);//  publicKey表示从后台生成的公钥
	    var encryptData = encrypt.encrypt(password);//加密后的字符串  password表示需要加密的文本


后台使用私钥解密 解密算法是RSAUtil.java

后台写法如下:
        /**
		*生成公钥和私钥
		*/
        public Map<String, Object> getRsaKey(HttpServletRequest request){
		Map<String, Object> rsaMap = new HashMap<String, Object>();
		try {
			//生成公钥和私钥
			Map<String, Key> map = RSACoder.initKey();
			RSAPublicKey publicKey = (RSAPublicKey) map.get(RSACoder.PUBLIC_KEY);
			RSAPrivateKey privateKey = (RSAPrivateKey) map.get(RSACoder.PRIVATE_KEY);
			
			//模  16进制
			String modulus16 = publicKey.getModulus().toString(16);
			//公钥指数
			String publicExponent16 = publicKey.getPublicExponent().toString(16);
			//把公钥传递给前台
			rsaMap.put("publicKey", RSACoder.encryptBASE64(publicKey.getEncoded()));
			System.err.println("modulus:"+modulus16);
			System.err.println("publicExponent:"+publicExponent16);
			//把私钥存放在session中  用完清空session的值privateKey
			RSAUtils.privateKey.put(request.getSession().getId(), privateKey);
			System.err.println("公钥"+RSACoder.encryptBASE64(publicKey.getEncoded()));
			System.err.println("私钥"+RSACoder.encryptBASE64(privateKey.getEncoded()));
		} catch (Exception e) {
			e.printStackTrace();
		}
	
		return rsaMap;
	}
	/**
	*解密
	*/
	public String decrypPassword(String password){
	   return new String(RSAUtil.decryptByPrivateKey(password, RSAUtils.privateKey.get(request.getSession().getId())));
	}	
验证加密解密的正确性:
  1、打开网址:http://tool.chacuo.net/cryptrsapubkey
  2、把程序生成的公钥和私钥拷贝出来
  3、将生成的公钥和私钥都以64个字符一行换行整理出来;例如:
     MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/oPDBI4GcvfIoN1ld/1nhvAe4
     y66rAvm7BjkMGPC+iTyVJa4+zyxf1s+Su5hXBS5zQ2PKaUZGE7+EpEO/TEPRLJhg
     th3N8DuIiw/6QRAzMSQV2VlmmihambMb0rLDTonnXjvEPsvdySLR3inRwZAdq6Fo
     3tLdYbk3SwnhIOQl3QIDAQAB
  4、点击网页上链接 'rsa公钥加密解密' ,把生成的公钥粘贴到文本框
      注意:粘贴在-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----中间
  5、输入要加密的文本
  6、点击RSA公钥加密按钮,即可生成密文。如:
     TZIFxU/vzOEPKw5L8fUh/dEYkzpgDJ5gVi0psfF5z7I1WaHWocB5JSz/tKqNNgcj6/CTf3U6Rtyhqxrzi/RBKuZ5P8qVlDvJTeaoTEgJtO5iQKKwQnIiqtPLDH2e3YluF+uSyqq/oD47z6oegnuIhawZd8/dSAn76j2j8w9w8lRLVowCO6iOlUOXgEBz5SgKyfWlXVP4vBKw0v+T9ALoAJtfZ2K4EY8bx84/Iu6xjsqrSrz1HmI4GiPrIba6OHyyzwNq4WBLrEBQI5laERw2jQIempVcLTGsE8d3hdm2xILHE2s5MENOKz0SzedTqV3iSyxcSF/WrLD28uz6N67afw==
  7、同理,点击网页上链接 'rsa私钥加密解密' ,把生成的私钥粘贴到输入加密私钥的文本框中
      注意:粘贴在-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----中间
  8、将上面的密文粘贴粘贴到 待加密、解密的文本框中
  9、点击RSA私钥解密按钮,即可生成看到解密出来的明文。
  10、注意第3步,公钥和私钥是以64个字符一行。


相关js文件和java文件下载链接

https://download.csdn.net/download/songyanfei1205/1047875

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

残月飞鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值