java使用RSA加密方式实现数据加密解密的代码
RSA的应用
RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密
java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥
测试代码
publicstaticvoidmain(Stringargs[]) { try{ RSADemorsa=newRSADemo(); rsa.generateKey(); byte[]data=rsa.encrypt("luanpeng".getBytes()); byte[]data1=rsa.decrypt(data); Stringstr=newString(data1); System.out.println(str); }catch(Exceptione){ System.out.println(e.toString()); } }
RSA工具类的实现
packagecom.lp.app.safe; importjava.security.*; importjava.security.interfaces.*; importjava.math.*; publicclassRSADemo{ publicRSADemo(){ } PublicKeypbkey; PrivateKeyprkey; publicvoidgenerateKey(){ try{ KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA"); kpg.initialize(1024); KeyPairkp=kpg.genKeyPair(); pbkey=kp.getPublic(); prkey=kp.getPrivate(); }catch(Exceptione){ } } //加密,需要公钥 publicbyte[]encrypt(byte[]ptext)throwsException{ //获取公钥及参数e,n RSAPublicKeypbk=(RSAPublicKey)pbkey; BigIntegere=pbk.getPublicExponent(); BigIntegern=pbk.getModulus(); //获取明文m BigIntegerm=newBigInteger(ptext); //计算密文c BigIntegerc=m.modPow(e,n); returnc.toByteArray(); } //使用私钥进行解密 publicbyte[]decrypt(byte[]ctext)throwsException{ //读取密文 BigIntegerc=newBigInteger(ctext); //读取私钥 RSAPrivateKeyprk=(RSAPrivateKey)prkey; BigIntegerd=prk.getPrivateExponent(); //获取私钥参数及解密 BigIntegern=prk.getModulus(); BigIntegerm=c.modPow(d,n); //显示解密结果 byte[]mt=m.toByteArray(); returnmt; } }
总结
以上所述是小编给大家介绍的java使用RSA加密方式实现数据加密解密的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。