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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。