亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2166 | 回復: 0
打印 上一主題 下一主題

一個RSA加密算法 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-03-11 19:46 |只看該作者 |倒序瀏覽
  1. package com;

  2. import java.security.Key;
  3. import java.security.KeyFactory;
  4. import java.security.KeyPair;
  5. import java.security.KeyPairGenerator;
  6. import java.security.NoSuchAlgorithmException;
  7. import java.security.PrivateKey;
  8. import java.security.PublicKey;
  9. import java.security.interfaces.RSAPrivateKey;
  10. import java.security.interfaces.RSAPublicKey;
  11. import java.security.spec.InvalidKeySpecException;
  12. import java.security.spec.PKCS8EncodedKeySpec;
  13. import java.security.spec.X509EncodedKeySpec;

  14. import java.util.HashMap;
  15. import java.util.Map;

  16. import javax.crypto.Cipher;

  17. public class RSACoder {
  18.         //算法
  19.         public static String Key_ALGORITHM="RSA";
  20.         //私鑰
  21.         public static String Private_Key="RSAPrivateKey";
  22.         //公鑰
  23.         public static String Public_Key="RSAPublicKey";
  24.         //密鑰長度
  25.         public static int Key_Size=512;
  26.         public static Map<String,Object> initKey() throws Exception{
  27.                 //實例化密鑰生成器
  28.                 KeyPairGenerator keypairgenerator=KeyPairGenerator.getInstance(Key_ALGORITHM);
  29.                 //初始化
  30.                 keypairgenerator.initialize(Key_Size);
  31.                 //獲得密鑰對
  32.                 KeyPair keypair=keypairgenerator.generateKeyPair();
  33.                 //密鑰
  34.                 RSAPrivateKey pritekey=(RSAPrivateKey)keypair.getPrivate();
  35.                 //公鑰
  36.                 RSAPublicKey pubkey=(RSAPublicKey)keypair.getPublic();
  37.                 Map<String,Object> keymap=new HashMap<String,Object>(2);
  38.                 keymap.put(Private_Key, pritekey);
  39.                 keymap.put(Public_Key, pubkey);
  40.                 return keymap;       
  41.         }
  42.         //獲得密鑰
  43.         public static byte[] getPrivateKey(Map<String,Object>keymap){
  44.         Key pritekey=(Key)keymap.get(Private_Key);
  45.         return pritekey.getEncoded();
  46.         }
  47.         //獲得公鑰
  48.         public static byte[] getPublicKey(Map<String,Object>keymap){
  49.                  Key pubkey=(Key)keymap.get(Public_Key);
  50.                  return pubkey.getEncoded();
  51.         }
  52.         //私鑰加密
  53.         public static byte[] encryptByPrivateKey(byte[] key,byte[] data) throws Exception{
  54.                 //實例化密鑰材料
  55.                 PKCS8EncodedKeySpec pcs8spec=new PKCS8EncodedKeySpec(key);
  56.                 //實例化密鑰工廠
  57.                 KeyFactory keyfactory=KeyFactory.getInstance(Key_ALGORITHM);
  58.                 //生成私鑰
  59.                 PrivateKey pritekey=keyfactory.generatePrivate(pcs8spec);
  60.                 //私鑰加密
  61.                 Cipher cipher=Cipher.getInstance(pritekey.getAlgorithm());
  62.                 cipher.init(Cipher.ENCRYPT_MODE,pritekey);
  63.                 return cipher.doFinal(data);
  64.         }
  65.         //公鑰解密
  66.         public static byte[] decryptByPublicKey(byte[] key,byte[] data) throws Exception{
  67.                 //實例化公鑰材料
  68.                 X509EncodedKeySpec x509spec=new X509EncodedKeySpec(key);
  69.                 //實例化密鑰工廠
  70.                 KeyFactory keyfactory=KeyFactory.getInstance(Key_ALGORITHM);
  71.                 //獲得公鑰
  72.                 PublicKey pubkey=keyfactory.generatePublic(x509spec);
  73.                 //對數據進行解密
  74.                 Cipher cipher=Cipher.getInstance(Key_ALGORITHM);
  75.                 cipher.init(Cipher.DECRYPT_MODE, pubkey);
  76.                 return cipher.doFinal(data);
  77.         }
  78.        

  79. }
復制代碼
轉自:http://yuncode.net/code/c_5136f1783044357

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP