Java加密技术(五)——非对称加密算法的由来DH

  1. getPrivateKey(aKeyMap);  
  2.   
  3.         System.err.println("甲方公钥:\r" + aPublicKey);  
  4.         System.err.println("甲方私钥:\r" + aPrivateKey);  
  5.           
  6.         // 由甲方公钥产生本地密钥对儿  
  7.         Map<String, Object> bKeyMap = DHCoder.initKey(aPublicKey);  
  8.         String bPublicKey = DHCoder.getPublicKey(bKeyMap);  
  9.         String bPrivateKey = DHCoder.getPrivateKey(bKeyMap);  
  10.           
  11.         System.err.println("乙方公钥:\r" + bPublicKey);  
  12.         System.err.println("乙方私钥:\r" + bPrivateKey);  
  13.           
  14.         String aInput = "abc ";  
  15.         System.err.println("原文: " + aInput);  
  16.   
  17.         // 由甲方公钥,乙方私钥构建密文  
  18.         byte[] aCode = DHCoder.encrypt(aInput.getBytes(), aPublicKey,  
  19.                 bPrivateKey);  
  20.   
  21.         // 由乙方公钥,甲方私钥解密  
  22.         byte[] aDecode = DHCoder.decrypt(aCode, bPublicKey, aPrivateKey);  
  23.         String aOutput = (new String(aDecode));  
  24.   
  25.         System.err.println("解密: " + aOutput);  
  26.   
  27.         assertEquals(aInput, aOutput);  
  28.   
  29.         System.err.println(" ===============反过来加密解密================== ");  
  30.         String bInput = "def ";  
  31.         System.err.println("原文: " + bInput);  
  32.   
  33.         // 由乙方公钥,甲方私钥构建密文  
  34.         byte[] bCode = DHCoder.encrypt(bInput.getBytes(), bPublicKey,  
  35.                 aPrivateKey);  
  36.   
  37.         // 由甲方公钥,乙方私钥解密  
  38.         byte[] bDecode = DHCoder.decrypt(bCode, aPublicKey, bPrivateKey);  
  39.         String bOutput = (new String(bDecode));  
  40.   
  41.         System.err.println("解密: " + bOutput);  
  42.   
  43.         assertEquals(bInput, bOutput);  
  44.     }  
  45.   
  46. }  


控制台输出: 
Console代码   收藏代码
  1. 甲方公钥:  
  2. MIHfMIGXBgkqhkiG9w0BAwEwgYkCQQD8poLOjhLKuibvzPcRDlJtsHiwXt7LzR60ogjzrhYXrgHz  
  3. W5Gkfm32NBPF4S7QiZvNEyrNUNmRUb3EPuc3WS4XAkBnhHGyepz0TukaScUUfbGpqvJE8FpDTWSG  
  4. kx0tFCcbnjUDC3H9c9oXkGmzLik1Yw4cIGI1TQ2iCmxBblC+eUykAgIBgANDAAJAdAWBVmIzqcko  
  5. Ej6qFjLDL2+Y3FPq1iRbnOyOpDj71yKaK1K+FhTv04B0zy4DKcvAASV7/Gv0W+bgqdmffRkqrQ==  
  6.   
  7. 甲方私钥:  
  8. MIHRAgEAMIGXBgkqhkiG9w0BAwEwgYkCQQD8poLOjhLKuibvzPcRDlJtsHiwXt7LzR60ogjzrhYX  
  9. rgHzW5Gkfm32NBPF4S7QiZvNEyrNUNmRUb3EPuc3WS4XAkBnhHGyepz0TukaScUUfbGpqvJE8FpD  
  10. TWSGkx0tFCcbnjUDC3H9c9oXkGmzLik1Yw4cIGI1TQ2iCmxBblC+eUykAgIBgAQyAjACJRfy1LyR  
  11. eHyD+4Hfb+xR0uoIGR1oL9i9Nk6g2AAuaDPgEVWHn+QXID13yL/uDos=  
  12.   
  13. 乙方公钥:  
  14. MIHfMIGXBgkqhkiG9w0BAwEwgYkCQQD8poLOjhLKuibvzPcRDlJtsHiwXt7LzR60ogjzrhYXrgHz  
  15. W5Gkfm32NBPF4S7QiZvNEyrNUNmRUb3EPuc3WS4XAkBnhHGyepz0TukaScUUfbGpqvJE8FpDTWSG  
  16. kx0tFCcbnjUDC3H9c9oXkGmzLik1Yw4cIGI1TQ2iCmxBblC+eUykAgIBgANDAAJAVEYSfBA+I9nr  
  17. dWw3OBv475C+eBrWBBYqt0m6/eu4ptuDQHwV4MmUtKAC2wc2nNrdb1wmBhY1X8RnWkJ1XmdDbQ==  
  18.   
  19. 乙方私钥:  
  20. MIHSAgEAMIGXBgkqhkiG9w0BAwEwgYkCQQD8poLOjhLKuibvzPcRDlJtsHiwXt7LzR60ogjzrhYX  
  21. rgHzW5Gkfm32NBPF4S7QiZvNEyrNUNmRUb3EPuc3WS4XAkBnhHGyepz0TukaScUUfbGpqvJE8FpD  
  22. TWSGkx0tFCcbnjUDC3H9c9oXkGmzLik1Yw4cIGI1TQ2iCmxBblC+eUykAgIBgAQzAjEAqaZiCdXp  
  23. 2iNpdBlHRaO9ir70wo2n32xNlIzIX19VLSPCDdeUWkgRv4CEj/8k+/yd  
  24.   
  25. 原文: abc   
  26. 解密: abc   
  27.  ===============反过来加密解密==================   
  28. 原文: def   
  29. 解密: def   


如我所言,甲乙双方在获得对方公钥后可以对发送给对方的数据加密,同时也能对接收到的数据解密,达到了数据安全通信的目的!  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值