您好,登錄后才能下訂單哦!
這篇文章主要講解了“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。