java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码
RSA的應用
RSA是一種非對稱加密算法。現(xiàn)在,很多登陸表單的密碼的都采用RSA加密,例如京東中的登陸使用公鑰對密碼進行加密
java使用RSA加密方式實現(xiàn)數(shù)據(jù)加密解密,需要首先產(chǎn)生私鑰和公鑰
測試代碼
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工具類的實現(xiàn)
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 {
// 獲取公鑰及參數(shù)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();
// 獲取私鑰參數(shù)及解密
BigInteger n = prk.getModulus();
BigInteger m = c.modPow(d, n);
// 顯示解密結果
byte[] mt = m.toByteArray();
return mt;
}
}
總結
以上所述是小編給大家介紹的java使用RSA加密方式實現(xiàn)數(shù)據(jù)加密解密的代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對聚米學院網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle acfs snap 恢复,
- 下一篇: 湖北职称计算机考试报名时间2016,湖北