您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要讲解了“java怎么用RSA加密方式实现数据加密解密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java怎么用RSA加密方式实现数据加密解密”吧!
RSA的应用
RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密
java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥
测试代码
public static void main(String args[]) { try { RSADemo rsa=new RSADemo(); rsa.generateKey(); byte[] data=rsa.encrypt("luanpeng".getBytes()); byte[] data1=rsa.decrypt(data); String str=new String(data1); System.out.println(str); } catch (Exception e) { System.out.println(e.toString()); }}
RSA工具类的实现
package com.lp.app.safe;import java.security.*;import java.security.interfaces.*;import java.math.*;public class RSADemo { public RSADemo() { } PublicKey pbkey; PrivateKey prkey; public void generateKey() { try { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(1024); KeyPair kp = kpg.genKeyPair(); pbkey = kp.getPublic(); prkey = kp.getPrivate(); } catch (Exception e) { } } //加密,需要公钥 public byte[] encrypt(byte[] ptext) throws Exception { // 获取公钥及参数e,n RSAPublicKey pbk = (RSAPublicKey)pbkey; BigInteger e = pbk.getPublicExponent(); BigInteger n = pbk.getModulus(); // 获取明文m BigInteger m = new BigInteger(ptext); // 计算密文c BigInteger c = m.modPow(e, n); return c.toByteArray(); } //使用私钥进行解密 public byte[] decrypt(byte[] ctext) throws Exception { // 读取密文 BigInteger c = new BigInteger(ctext); // 读取私钥 RSAPrivateKey prk = (RSAPrivateKey)prkey; BigInteger d = prk.getPrivateExponent(); // 获取私钥参数及解密 BigInteger n = prk.getModulus(); BigInteger m = c.modPow(d, n); // 显示解密结果 byte[] mt = m.toByteArray(); return mt; }}
感谢各位的阅读,以上就是“java怎么用RSA加密方式实现数据加密解密”的内容了,经过本文的学习后,相信大家对java怎么用RSA加密方式实现数据加密解密这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。