国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java中DES加密解密

java中DES加密解密

2019-12-12 15:00hebedich JAVA教程

本文給大家分享的是一段java中實現des加密解密的代碼,非常的實用,基本每個項目都可以用到,推薦給大家。

廢話不多說,直接奉上代碼:

代碼一

  1. package com.eabax.plugin.yundada.utils; 
  2. import java.io.IOException; 
  3. import java.security.InvalidKeyException; 
  4. import java.security.NoSuchAlgorithmException; 
  5. import java.security.SecureRandom; 
  6. import java.security.spec.InvalidKeySpecException; 
  7. import javax.crypto.BadPaddingException; 
  8. import javax.crypto.Cipher; 
  9. import javax.crypto.IllegalBlockSizeException; 
  10. import javax.crypto.NoSuchPaddingException; 
  11. import javax.crypto.SecretKey; 
  12. import javax.crypto.SecretKeyFactory; 
  13. import javax.crypto.spec.DESKeySpec; 
  14. import org.apache.commons.codec.binary.Base64; 
  15. import sun.misc.BASE64Decoder; 
  16. public class DESEncryptHelper { 
  17.   private final static String DES = "DES"
  18.   /** 
  19.    * 生成密鑰 
  20.    * @param employeeCode 
  21.    */ 
  22.   public static String getDESKey(String encryptStr){ 
  23.     if (!CacheManager.getCache().containsKey("encryptKey_"+encryptStr)) { 
  24.       CacheManager.getCache().put("encryptKey_"+encryptStr, encryptStr+"tablemiyaokey"); 
  25.     } 
  26.     String key = (String) CacheManager.getCache().get("encryptKey_"+encryptStr); 
  27.     return key; 
  28.   } 
  29.    /** 
  30.    * Description 根據鍵值進行解密 
  31.    * @param data 
  32.    * @param key 加密鍵byte數組 
  33.    * @return 
  34.    * @throws IOException 
  35.    * @throws Exception 
  36.    */ 
  37.   public static String decrypt(String data, String key) throws IOException, 
  38.       Exception { 
  39.     if (data == null
  40.       return null
  41.     BASE64Decoder decoder = new BASE64Decoder(); 
  42.     byte[] buf = decoder.decodeBuffer(data); 
  43.     byte[] bt = decrypt(buf,key.getBytes()); 
  44.     return new String(bt); 
  45.   } 
  46.   /** 
  47.    * 對字符串加密  
  48.    * @param str 
  49.    * @return 
  50.    * @throws InvalidKeyException 
  51.    * @throws IllegalBlockSizeException 
  52.    * @throws BadPaddingException 
  53.    * @throws InvalidKeySpecException 
  54.    * @throws NoSuchAlgorithmException 
  55.    * @throws NoSuchPaddingException 
  56.    */ 
  57.   public static String getEncryptStr(String str,String encryptStr) throws InvalidKeyException, 
  58.       IllegalBlockSizeException, BadPaddingException, 
  59.       InvalidKeySpecException, NoSuchAlgorithmException, 
  60.       NoSuchPaddingException { 
  61.     //獲取key 
  62.     String key = getDESKey(encryptStr); 
  63.     //獲取密鑰 
  64.     SecretKeyFactory factory = SecretKeyFactory.getInstance("DES"); 
  65.     DESKeySpec keyspec = new DESKeySpec(key.getBytes()); 
  66.     SecretKey deskey = factory.generateSecret(keyspec); 
  67.     // Cipher負責完成加密或解密工作 
  68.     Cipher c = Cipher.getInstance("DES"); 
  69.     // 根據密鑰,對Cipher對象進行初始化,DECRYPT_MODE表示加密模式  
  70.     c.init(Cipher.ENCRYPT_MODE, deskey); 
  71.     byte[] src = str.getBytes(); 
  72.     // 該字節數組負責保存加密的結果 
  73.     byte[] cipherByte = c.doFinal(src); 
  74.     String enstr = new String(Base64.encodeBase64(cipherByte)); 
  75.     return enstr; 
  76.   } 
  77.    /** 
  78.    * Description 根據鍵值進行解密 
  79.    * @param data 
  80.    * @param key 加密鍵byte數組 
  81.    * @return 
  82.    * @throws Exception 
  83.    */ 
  84.   private static byte[] decrypt(byte[] data, byte[] key) throws Exception { 
  85.     // 生成一個可信任的隨機數源 
  86.     SecureRandom sr = new SecureRandom(); 
  87.     // 從原始密鑰數據創建DESKeySpec對象 
  88.     DESKeySpec dks = new DESKeySpec(key); 
  89.     // 創建一個密鑰工廠,然后用它把DESKeySpec轉換成SecretKey對象 
  90.     SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); 
  91.     SecretKey securekey = keyFactory.generateSecret(dks); 
  92.     // Cipher對象實際完成解密操作 
  93.     Cipher cipher = Cipher.getInstance(DES); 
  94.     // 用密鑰初始化Cipher對象 
  95.     cipher.init(Cipher.DECRYPT_MODE, securekey, sr); 
  96.     return cipher.doFinal(data); 
  97.   } 

代碼二

  1. package com.sinosoft.olyvem.common; 
  2.   
  3. import java.security.SecureRandom; 
  4.   
  5. import javax.crypto.Cipher; 
  6. import javax.crypto.SecretKey; 
  7. import javax.crypto.SecretKeyFactory; 
  8. import javax.crypto.spec.DESKeySpec; 
  9.   
  10. import sun.misc.BASE64Encoder; 
  11.   
  12. public class DES ...{ 
  13.   private byte[] desKey; 
  14.   
  15.   public DES(byte[] desKey) ...{ 
  16.     this.desKey = desKey; 
  17.   } 
  18.   
  19.   public byte[] doEncrypt(byte[] plainText) throws Exception ...{ 
  20.     // DES算法要求有一個可信任的隨機數源 
  21.     SecureRandom sr = new SecureRandom(); 
  22.     byte rawKeyData[] = desKey;/**//* 用某種方法獲得密匙數據 */ 
  23.     // 從原始密匙數據創建DESKeySpec對象 
  24.     DESKeySpec dks = new DESKeySpec(rawKeyData); 
  25.     // 創建一個密匙工廠,然后用它把DESKeySpec轉換成 
  26.     // 一個SecretKey對象 
  27.     SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 
  28.     SecretKey key = keyFactory.generateSecret(dks); 
  29.     // Cipher對象實際完成加密操作 
  30.     Cipher cipher = Cipher.getInstance("DES"); 
  31.     // 用密匙初始化Cipher對象 
  32.     cipher.init(Cipher.ENCRYPT_MODE, key, sr); 
  33.     // 現在,獲取數據并加密 
  34.     byte data[] = plainText;/**//* 用某種方法獲取數據 */ 
  35.     // 正式執行加密操作 
  36.     byte encryptedData[] = cipher.doFinal(data); 
  37.     return encryptedData; 
  38.   } 
  39.   
  40.   public byte[] doDecrypt(byte[] encryptText) throws Exception ...{ 
  41.     // DES算法要求有一個可信任的隨機數源 
  42.     SecureRandom sr = new SecureRandom(); 
  43.     byte rawKeyData[] = desKey; /**//* 用某種方法獲取原始密匙數據 */ 
  44.     // 從原始密匙數據創建一個DESKeySpec對象 
  45.     DESKeySpec dks = new DESKeySpec(rawKeyData); 
  46.     // 創建一個密匙工廠,然后用它把DESKeySpec對象轉換成 
  47.     // 一個SecretKey對象 
  48.     SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); 
  49.     SecretKey key = keyFactory.generateSecret(dks); 
  50.     // Cipher對象實際完成解密操作 
  51.     Cipher cipher = Cipher.getInstance("DES"); 
  52.     // 用密匙初始化Cipher對象 
  53.     cipher.init(Cipher.DECRYPT_MODE, key, sr); 
  54.     // 現在,獲取數據并解密 
  55.     byte encryptedData[] = encryptText;/**//* 獲得經過加密的數據 */ 
  56.     // 正式執行解密操作 
  57.     byte decryptedData[] = cipher.doFinal(encryptedData); 
  58.     return decryptedData; 
  59.   } 
  60.   
  61.   public static void main(String[] args) throws Exception ...{ 
  62.     String key = "FtpXPass"
  63.     String value = "olympic"
  64.     BASE64Encoder base64Encoder = new BASE64Encoder(); 
  65.   
  66.     DES desEncrypt = new DES(key.getBytes()); 
  67.     byte[] encryptText = desEncrypt.doEncrypt(value.getBytes()); 
  68.     //System.out.println("doEncrypt  -  " + toHexString(encryptText)); 
  69.     System.out.println("doEncrypt  -  " 
  70.         + base64Encoder.encode(encryptText)); 
  71.     byte[] decryptText = desEncrypt.doDecrypt("r9NGYcKAtdo=".getBytes()); 
  72.     System.out.println("doDecrypt  -  " + new String(decryptText)); 
  73.     //System.out.println("doDecrypt  -  " + toHexString(decryptText)); 
  74.   
  75.   } 
  76.   
  77.   public static String toHexString(byte[] value) ...{ 
  78.     String newString = ""
  79.     for (int i = 0; i < value.length; i++) ...{ 
  80.       byte b = value[i]; 
  81.       String str = Integer.toHexString(b); 
  82.       if (str.length() > 2) ...{ 
  83.         str = str.substring(str.length() - 2); 
  84.       } 
  85.       if (str.length() < 2) ...{ 
  86.         str = "0" + str; 
  87.       } 
  88.       newString += str; 
  89.     } 
  90.     return newString.toUpperCase(); 
  91.   } 
  92.   

以上就是本文關于DES加密解密的代碼了,希望對大家學習java有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人综合一区二区三区 | 黄色最新网站 | 性视频网站免费 | 一区二区三区免费看 | 国产精品欧美日韩在线观看 | 欧美激情一区二区 | 日本视频一区二区三区 | 福利视频一区二区三区 | 日韩视频在线观看一区 | 免费视频一区 | 色玖玖综合 | 久久综合久久综合久久 | 久久九九国产精品 | 91久久国产综合久久91精品网站 | 国产精品久久免费观看spa | 欧美激情精品久久久久久黑人 | 久久精品国产视频 | 久久久国产一区二区三区 | 久久99精品久久久久久6194 | 久久免费99精品久久久久久 | 97精品国产97久久久久久粉红 | 色片视频免费 | 一级一片在线播放在线观看 | 毛片网页 | 欧美日韩一 | 精品国产乱码久久久久夜 | 欧美老妇交乱视频 | 黄色av网站在线免费观看 | 免费成人在线观看视频 | 欧美视频成人 | 久久一区视频 | 久久久一区二区三区 | 国产视频亚洲 | 一二三区字幕免费观看av | 亚洲久久| 国产精品美女久久久久久久网站 | 一区二区三区在线播放 | 深夜免费网站 | 午夜精品 | www.日韩 | 99精品视频免费 |