DES加密的工具类:

public class DESUtil {
/**
* 根据指定的密钥加密字符串
* @param encryptString 需要加密的字符串
* @param encryptKey 密钥
* @return 加密后的字符串
* @throws Exception
*/
public static String encryptDES(String encryptString, String encryptKey)
throws Exception {
// 实例化IvParameterSpec对象,使用指定的初始化向量,初始化向量根据key生成
IvParameterSpec zeroIv = new IvParameterSpec(encryptKey.getBytes("ASCII"));
// 实例化SecretKeySpec类,根据字节数组来构造SecretKey
SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(), "DES");
// 创建密码器
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用秘钥初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
// 执行加密操作
byte[] encryptedData = cipher.doFinal(encryptString.getBytes());
return Base64.encodeToString(encryptedData, Base64.DEFAULT);
}
/**
* 根据指定的密钥对字符串解密
* @param decrypString 需要解密的字符串
* @param decryptKey 密钥
* @return 解密后的字符串
* @throws Exception
*/
public static String decryptDES(String decrypString, String decryptKey)
throws Exception {
byte[] byteMi = Base64.decode(decrypString, Base64.DEFAULT);
// 实例化IvParameterSpec对象,使用指定的初始化向量
IvParameterSpec zeroIv = new IvParameterSpec(decryptKey.getBytes("ASCII"));
// 实例化SecretKeySpec类,根据字节数组来构造SecretKey
SecretKeySpec key = new SecretKeySpec(decryptKey.getBytes(), "DES");
// 创建密码器
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用秘钥初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);
// 执行解密操作
byte[] decryptedData = cipher.doFinal(byteMi);
return new String(decryptedData);
}
}

AES加密工具类:

public class AESUtil {
public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES");// 创建密码器
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
byte[] result = cipher.doFinal(byteContent);
return result; // 加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
public static byte[] decrypt(byte[] content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES");// 创建密码器
cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
byte[] result = cipher.doFinal(content);
return result; // 加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}
return null;
}