當前位置:編程學習大全網 - 源碼下載 - 用java實現des加密和解密

用java實現des加密和解密

壹個用DES來加密、解密的類

/java/1/17816.html

import java.security.*;

import javax.crypto.Cipher;

import javax.crypto.SecretKey;

import javax.crypto.SecretKeyFactory;

import javax.crypto.spec.DESKeySpec;

/**

* 字符串工具集合

* @author Liudong

*/

public class StringUtils {

private static final String PASSWORD_CRYPT_KEY = "__jDlog_";

private final static String DES = "DES";

/**

* 加密

* @param src 數據源

* @param key 密鑰,長度必須是8的倍數

* @return 返回加密後的數據

* @throws Exception

*/

public static byte[] encrypt(byte[] src, byte[] key)throws Exception {

//DES算法要求有壹個可信任的隨機數源

SecureRandom sr = new SecureRandom();

// 從原始密匙數據創建DESKeySpec對象

DESKeySpec dks = new DESKeySpec(key);

// 創建壹個密匙工廠,然後用它把DESKeySpec轉換成

// 壹個SecretKey對象

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);

SecretKey securekey = keyFactory.generateSecret(dks);

// Cipher對象實際完成加密操作

Cipher cipher = Cipher.getInstance(DES);

// 用密匙初始化Cipher對象

cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);

// 現在,獲取數據並加密

// 正式執行加密操作

return cipher.doFinal(src);

}

/**

* 解密

* @param src 數據源

* @param key 密鑰,長度必須是8的倍數

* @return 返回解密後的原始數據

* @throws Exception

*/

public static byte[] decrypt(byte[] src, byte[] key)throws Exception {

// DES算法要求有壹個可信任的隨機數源

SecureRandom sr = new SecureRandom();

// 從原始密匙數據創建壹個DESKeySpec對象

DESKeySpec dks = new DESKeySpec(key);

// 創建壹個密匙工廠,然後用它把DESKeySpec對象轉換成

// 壹個SecretKey對象

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);

SecretKey securekey = keyFactory.generateSecret(dks);

// Cipher對象實際完成解密操作

Cipher cipher = Cipher.getInstance(DES);

// 用密匙初始化Cipher對象

cipher.init(Cipher.DECRYPT_MODE, securekey, sr);

// 現在,獲取數據並解密

// 正式執行解密操作

return cipher.doFinal(src);

}

/**

* 密碼解密

* @param data

* @return

* @throws Exception

*/

public final static String decrypt(String data){

try {

return new String(decrypt(hex2byte(data.getBytes()),

PASSWORD_CRYPT_KEY.getBytes()));

}catch(Exception e) {

}

return null;

}

/**

* 密碼加密

* @param password

* @return

* @throws Exception

*/

public final static String encrypt(String password){

try {

return byte2hex(encrypt(password.getBytes(),PASSWORD_CRYPT_KEY.getBytes())); }catch(Exception e) {

}

return null;

}

比較長, 轉了壹部分.

  • 上一篇:大家怎麽看待 soul、覓伊這兩個交友軟 件?
  • 下一篇:王虎棋牌源代碼
  • copyright 2024編程學習大全網