importjava.util.UUID;importjavax.crypto.Cipher;importjavax.crypto.SecretKey;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESKeySpec;importjavax.crypto.spec.IvParameterSpec;
public classDESUtil {private static final String PASSWORD_CRYPT_KEY =UUID.randomUUID()
.toString().replace("-", "").toUpperCase().substring(0, 8);public static String decrypt(String message, String key) throwsException {byte[] bytesrc =convertHexString(message);
Cipher cipher= Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec= new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory= SecretKeyFactory.getInstance("DES");
SecretKey secretKey=keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv= new IvParameterSpec(key.getBytes("UTF-8"));
cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);byte[] retByte =cipher.doFinal(bytesrc);return newString(retByte);
}public static byte[] encrypt(String message, String key) throwsException {
Cipher cipher= Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec= new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory= SecretKeyFactory.getInstance("DES");
SecretKey secretKey=keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv= new IvParameterSpec(key.getBytes("UTF-8"));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);return cipher.doFinal(message.getBytes("UTF-8"));
}public staticString encrypt(String value) {
String result= "";try{
value= java.net.URLEncoder.encode(value, "utf-8");
result=toHexString(encrypt(value, PASSWORD_CRYPT_KEY))
.toUpperCase();
}catch(Exception ex) {
ex.printStackTrace();return "";
}returnresult;
}public static byte[] convertHexString(String ss) {byte digest[] = new byte[ss.length() / 2];for (int i = 0; i < digest.length; i++) {
String byteString= ss.substring(2 * i, 2 * i + 2);int byteValue = Integer.parseInt(byteString, 16);
digest[i]= (byte) byteValue;
}returndigest;
}public static String toHexString(byteb[]) {
StringBuffer hexString= newStringBuffer();for (int i = 0; i < b.length; i++) {
String plainText= Integer.toHexString(0xff &b[i]);if (plainText.length() < 2)
plainText= "0" +plainText;
hexString.append(plainText);
}returnhexString.toString();
}
}