des加解密工具类
public class CryptoUtil {
private final static String DES = "DES";
private final static String ENCODE = "UTF-8";
private final static String DEFAULT_KEY = "C55F34DEAF54BARF89283984D96BAF";
public static String encrypt(String plainText) {
String result = "";
try {
DESKeySpec keySpec = new DESKeySpec(DEFAULT_KEY.getBytes(ENCODE));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey key = keyFactory.generateSecret(keySpec);
sun.misc.BASE64Encoder base64encoder = new sun.misc.BASE64Encoder();
byte[] cleartext = plainText.getBytes(ENCODE);
Cipher cipher = Cipher.getInstance(DES);
cipher.init(Cipher.ENCRYPT_MODE, key);
result = base64encoder.encode(cipher.doFinal(cleartext));
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String decrypt(String encryptedPwd) {
String result = "";
try {
DESKeySpec keySpec = new DESKeySpec(DEFAULT_KEY.getBytes(ENCODE));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey key = keyFactory.generateSecret(keySpec);
sun.misc.BASE64Decoder base64decoder = new sun.misc.BASE64Decoder();
byte[] encrypedPwdBytes = base64decoder.decodeBuffer(encryptedPwd);
Cipher cipher = Cipher.getInstance(DES);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] plainTextPwdBytes = (cipher.doFinal(encrypedPwdBytes));
result = new String(plainTextPwdBytes);
} catch (Exception e) {
result = againDecrypt(encryptedPwd);
}
return result;
}
public static String againDecrypt(String encryptedPwd) {
String result = "";
try {
encryptedPwd = URLDecoder.decode(encryptedPwd, ENCODE);
DESKeySpec keySpec = new DESKeySpec(DEFAULT_KEY.getBytes(ENCODE));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey key = keyFactory.generateSecret(keySpec);
sun.misc.BASE64Decoder base64decoder = new sun.misc.BASE64Decoder();
byte[] encrypedPwdBytes = base64decoder.decodeBuffer(encryptedPwd);
Cipher cipher = Cipher.getInstance(DES);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] file = cipher.doFinal(encrypedPwdBytes);
byte[] plainTextPwdBytes = (file);
result = new String(plainTextPwdBytes);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
学习注定是一条漫长又艰苦的道路,没有捷径可言,所有人都一样。熬过去,你就赢了!