亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

一個用JAVA開發的會話密鑰程序,可能對你有所幫助

2019-11-18 12:10:47
字體:
來源:轉載
供稿:網友

  //package
  /*
  運行本程序你需要下載JCE,Bouncy Castle的JCE with PRovider and Lightweight API
   網止是 http://www.bouncycastle.org
   配置如下:
   在WINDOWS中,你需要把下載的bcprov-jdk14-119.jar文件拷貝到兩個地方:
   一個在你安裝的JDK目錄中,比如說我的是C:/j2sdk1.4.0-rc/jre/lib/ext
   另一個在你的JDK運行環境中,我的是在C:/Program Files/java/j2re1.4.0-rc/lib/ext;
   另外還要在對兩個java.security進行修改:
   我的在 C:/j2sdk1.4.0-rc/jre/lib/security/java.security;
   C:/Program Files/Java/j2re1.4.0-rc/lib/security/java.security;
   在java.security中加入
   security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider
   假如一切順利,你就可以運行本程序了。
  
   該程序具有對你的文件加解密功能。需要你指定的數據,程序中已給了接口。
   比如說你指定了要加密的文件名"4.txt",加密后的文件存放位置"6.txt",
   還有口令passWord如"liufeng"后,運行該程序,那么"6.txt" 中將是"4.txt"的密文。
   注重口令是解密的鑰匙,不要忘記。
   其他解密過程自己參考。
  
   本程序利用會話密鑰加密,提供很多接口。假如你項目中需要加密過程,可以稍加改進為你所用
  */
  import java.security.*;
  import java.security.spec.*;
  import javax.crypto.*;
  import javax.crypto.spec.*;
  import java.io.*;
  import java.util.*;
  
  
  public class FileEncryptorRSA {
  
  
  private static final int ITERATIONS=1000;//計算次數,在加鹽中用到
  private static byte[] publicKeyBytes;//公鑰
  private static byte[] privateKeyBytes;//私鑰
  private static String sessionKey;//會話密鑰
  public static String ENCRYPT_PRIVATEKEY_FILE="1.txt";//該文件放置加密的私鑰
  private static String TEXT_FILE="4.txt";//要加密的文件
  private static String ENCRPTOR_TEXT_FILE="5.txt";//被加密后的文件
  private static String DENCRYPTOR_TEXT_FILE="6.txt";//解密后的文件
  private static String password="liufeng";//口令用于加密私鑰
  
  
  public void setTEXT_FILE(String fileName){
  TEXT_FILE=fileName;
  }
  public void setENCRYPT_PRIVATEKEY_FILE(String fileName){
   ENCRYPT_PRIVATEKEY_FILE=fileName;
   }
   public String getENCRYPT_PRIVATEKEY_FILE(){
   return ENCRYPT_PRIVATEKEY_FILE;
   }
  
  public void setENCRPTOR_TEXT_FILE(String fileName){
  ENCRPTOR_TEXT_FILE=fileName;
  }
  public String getENCRPTOR_TEXT_FILE(){
  return ENCRPTOR_TEXT_FILE;
  }
  public void setDENCRYPTOR_TEXT_FILE(String fileName){
   DENCRYPTOR_TEXT_FILE=fileName;
   }
   public String getDENCRYPTOR_TEXT_FILE(){
   return DENCRYPTOR_TEXT_FILE;
   }
  public void setPassword(String password){
  this.password=password;
  }
  
  
  //create a RSA secretKey
   public static void createKey()throws Exception{
  KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance("RSA");
  keyPairGenerator.initialize(1024);
  KeyPair keyPair=keyPairGenerator.genKeyPair();
  //得到公鑰的字節數組
   publicKeyBytes=keyPair.getPublic().getEncoded();
  //得到私鑰
   byte[] privateKeyBytes=keyPair.getPrivate().getEncoded();
   byte[] encrytedPrivatekey=passwordEncrypt(password.toCharArray(),privateKeyBytes);
   FileOutputStream fos=new FileOutputStream(ENCRYPT_PRIVATEKEY_FILE);
   fos.write(encrytedPrivatekey);
   fos.close();
   }
  
  
  
  //通過給的口令加密私鑰
   private static byte[] passwordEncrypt(char[] password,byte[] privateKeyBytes)
   throws Exception{
   //create 8 byte salt
   byte[] salt=new byte[8];
   Random random=new Random();
   random.nextBytes(salt);
   //create a PBE key and cipher
   PBEKeySpec keySpec=new PBEKeySpec(password);
   SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC");
   SecretKey key=keyFactory.generateSecret(keySpec);
   PBEParameterSpec paramSpec=new PBEParameterSpec(salt,ITERATIONS);
   Cipher cipher=Cipher.getInstance("PBEWithSHAAndTwofish-CBC");
   cipher.init(Cipher.ENCRYPT_MODE,key,paramSpec);
   //Encrypt the byte[]
   byte[] cipherPriKey=cipher.doFinal(privateKeyBytes);
   //write out salt ,and then the cipherPriKey
   ByteArrayOutputStream baos=new ByteArrayOutputStream();
   baos.write(salt);
   baos.write(cipherPriKey);
   return baos.toByteArray();
   }
  
  
  
  //用會話密鑰加密給定的文件,然后用公鑰加密會話密鑰,并存入文件中
  //最后加密后的文件由密鑰長度+已加密的密鑰(會話密鑰)+密文
   public static void encrypt()throws Exception{
  
   //轉換成RSA密鑰
   X509EncodedKeySpec keySpec=new X509EncodedKeySpec(publicKeyBytes);
   KeyFactory keyFactory=KeyFactory.getInstance("RSA");
   PublicKey publickey=keyFactory.generatePublic(keySpec);
   //打開存貯密文的文件
   DataOutputStream output=new DataOutputStream(new FileOutputStream(ENCRPTOR_TEXT_FILE));
   //創建RSA的CIpher
   Cipher rsaCipher=Cipher.getInstance("RSA/ECB/PKCS1Padding");
   rsaCipher.init(Cipher.ENCRYPT_MODE,publickey);
   //創建會話密鑰(Rijndael)
   KeyGenerator rijndaelKeyGenerator=KeyGenerator.getInstance("Rijndael");
   rijndaelKeyGenerator.init(256);
   Key rijndaelKey=rijndaelKeyGenerator.generateKey();
   //公鑰加密會話密鑰
   byte[] encodedKeyBytes=rsaCipher.doFinal(rijndaelKey.getEncoded());
   output.writeInt(encodedKeyBytes.length);
   output.write(encodedKeyBytes);
   //產生IV向量
   SecureRandom random=new SecureRandom();
   byte[] iv=new byte[16];
   random.nextBytes(iv);
   output.write(iv);
  
   //加密正文
   IvParameterSpec spec=new IvParameterSpec(iv);
   Cipher symmetricCipher=Cipher.getInstance("Rijndael/CBC/PKCS5Padding");
   symmetricCipher.init(Cipher.ENCRYPT_MODE,rijndaelKey,spec);
   CipherOutputStream cos=new CipherOutputStream(output,symmetricCipher);
   FileInputStream input=new FileInputStream(TEXT_FILE);
  
   int theByte=0;
   while((theByte=input.read())!=-1){
   cos.write(theByte);
   }
   input.close();
   cos.close();
   return;
   }
  
  
  
  //得到私鑰
   private static byte[] passwordDecrypt(char[] password,byte[] ciphertext)
   throws Exception{
   byte[] salt=new byte[8];
   ByteArrayInputStream bais=new ByteArrayInputStream(ciphertext);
   bais.read(salt,0,8);
   byte[] remainingCiphertext=new byte[ciphertext.length-8];
   bais.read(remainingCiphertext,0,ciphertext.length-8);
   PBEKeySpec keySpec=new PBEKeySpec(password);
   SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC");
   SecretKey key=keyFactory.generateSecret(keySpec);
   PBEParameterSpec paramSpec=new PBEParameterSpec(salt,ITERATIONS);
   Cipher cipher=Cipher.getInstance("PBEWithSHAAndTwofish-CBC");
   cipher.init(Cipher.DECRYPT_MODE,key,paramSpec);
   return cipher.doFinal(remainingCiphertext);
   }
  
  
  //解密加密的文件
   public static void decrypt()
   throws Exception{
   FileInputStream fis=new FileInputStream(ENCRYPT_PRIVATEKEY_FILE);
   ByteArrayOutputStream baos=new ByteArrayOutputStream();
   int theByte=0;
   while((theByte=fis.read())!=-1){
   baos.writ

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲va久久久噜噜噜久久天堂| 国产视频在线观看一区二区| 欧美天天综合色影久久精品| 亚洲国产精品久久久久久| 国产欧美在线观看| 日韩电影在线观看永久视频免费网站| 91久久久久久久久久久| 欧美专区国产专区| 亚洲自拍偷拍在线| 亚洲天堂av女优| 欧美性受xxxx黑人猛交| 国产午夜精品视频免费不卡69堂| 国产精品久久久久av免费| 成年无码av片在线| 精品国产乱码久久久久久虫虫漫画| 日韩av电影在线网| 久久久国产成人精品| 韩国国内大量揄拍精品视频| 亚洲成人国产精品| 欧美日韩美女在线| 久久成人在线视频| 成人激情视频免费在线| 午夜精品福利在线观看| 91精品一区二区| 97精品在线视频| 国产精品高潮呻吟久久av无限| 在线成人激情视频| 国产精品第三页| 综合久久五月天| 欧美综合在线观看| 久久人人爽人人| 一区二区欧美日韩视频| 热久久美女精品天天吊色| 亚洲天堂免费观看| 国产成人精品一区二区| 国产欧美日韩亚洲精品| 国产精品h片在线播放| 国产精品男人爽免费视频1| 久久精品视频在线播放| 亚洲第一精品久久忘忧草社区| 日本精品视频在线观看| 国产精品永久免费观看| 国产精品视频1区| 91午夜理伦私人影院| 亚洲国产一区二区三区四区| 欧美激情乱人伦| 91九色视频在线| 97av在线视频免费播放| 久久久国产精彩视频美女艺术照福利| 最近2019中文字幕一页二页| 欧美多人乱p欧美4p久久| 精品无码久久久久久国产| 亚洲人成网站免费播放| 国产成人精品一区| 91亚洲精品一区| 亚洲精品丝袜日韩| 欧美日韩一区二区精品| 日韩在线观看高清| 国产91色在线|免| 日本韩国在线不卡| 国产精品久久久久免费a∨| 欧美日韩免费一区| 欧美一级黑人aaaaaaa做受| 欧美激情在线有限公司| 国产视频精品va久久久久久| 国产婷婷成人久久av免费高清| 亚洲欧洲av一区二区| 亚洲一区二区三区在线免费观看| 26uuu另类亚洲欧美日本一| 亚洲a在线播放| www国产精品视频| 最新91在线视频| 日韩精品中文在线观看| 一区二区成人精品| 亚洲国产精彩中文乱码av在线播放| 精品无人区太爽高潮在线播放| 国产成人精品视频| 国产成人一区三区| 欧美日韩免费一区| 亚洲精品影视在线观看| 精品视频在线观看日韩| 日韩欧美在线网址| 亚洲免费伊人电影在线观看av| 丝袜一区二区三区| 日韩精品极品视频| 91免费视频国产| 欧美激情国产高清| 日韩女优人人人人射在线视频| 色综合亚洲精品激情狠狠| 久久久人成影片一区二区三区观看| 日韩美女视频在线观看| 欧美日产国产成人免费图片| 亚洲片在线资源| 久久综合电影一区| 深夜精品寂寞黄网站在线观看| 亚洲欧美国产精品专区久久| 91精品国产777在线观看| 自拍偷拍亚洲一区| 亚洲永久在线观看| 中文字幕在线看视频国产欧美| 成人两性免费视频| 久久夜色精品亚洲噜噜国产mv| 国产精品高潮粉嫩av| 国产欧美日韩中文字幕在线| 国产精品白丝av嫩草影院| 久久噜噜噜精品国产亚洲综合| 81精品国产乱码久久久久久| 中文字幕亚洲欧美一区二区三区| 最近中文字幕2019免费| 亚洲自拍偷拍色片视频| 91av在线播放视频| 久久露脸国产精品| 欧美与欧洲交xxxx免费观看| 欧美综合在线观看| 欧美最猛性xxxxx免费| 一区二区亚洲欧洲国产日韩| 亚洲国产成人在线视频| 最新中文字幕亚洲| 亚洲天堂第二页| 久久777国产线看观看精品| 91免费的视频在线播放| 欧美成人午夜激情| 97在线视频一区| 7777免费精品视频| 国产精品久久不能| 55夜色66夜色国产精品视频| 91av国产在线| 黄色一区二区在线观看| 日韩电影大片中文字幕| 欧美在线观看网站| 亚洲第一av在线| 国产91精品网站| 日韩av在线免费| 欧美色视频日本版| 国产精品美女在线| 人体精品一二三区| 色综合色综合网色综合| 欧美成人激情视频免费观看| 91精品国产高清自在线看超| 成人精品在线视频| 在线精品视频视频中文字幕| 国产精品激情自拍| 91精品国产乱码久久久久久蜜臀| 日本精品久久久久影院| 国自产精品手机在线观看视频| 欧美小视频在线| 青青精品视频播放| 日韩精品视频在线观看免费| 姬川优奈aav一区二区| 福利一区视频在线观看| 国产成人精品视| 国产欧美日韩中文| 国产成人aa精品一区在线播放| 日韩欧美在线观看视频| 久久成人在线视频| 最近2019中文字幕大全第二页| 成人美女av在线直播| 国产精品久久久久一区二区| 国产精品一区二区三区久久久| 国产精自产拍久久久久久| 中文字幕亚洲一区二区三区五十路| 精品一区二区三区三区| 精品视频一区在线视频| 欧美在线不卡区|