/**
* 将数据使用DES加密解密
*
* @param data
* 待处理数据
* @param pwd
* 密码,长度必须大于八
* @param encrypt
* true加密 false解密
* @return
*/
public static byte[] getDESData(byte[] data, byte[] pwd, boolean encrypt) {
try {
// 算法
String algorithm = "DES";
// 创建加密对象
DESKeySpec keySpec = new DESKeySpec(pwd);
SecretKeyFactory factory = SecretKeyFactory.getInstance(algorithm);
SecretKey secretKey = factory.generateSecret(keySpec);
SecureRandom random = new SecureRandom();
Cipher cipher = Cipher.getInstance(algorithm);
// 操作类型:加密解密
int mode = encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE;
cipher.init(mode, secretKey, random);
// 进行对数据的操作:加密或解密
return cipher.doFinal(data);
} catch (InvalidKeyException e) {
} catch (NoSuchAlgorithmException e) {
} catch (InvalidKeySpecException e) {
} catch (NoSuchPaddingException e) {
} catch (IllegalBlockSizeException e) {
} catch (BadPaddingException e) {
}
return null;
}