Des3加密算法是一种对称加密算法。
public class DES3 {
/**
* 加密
* @param text 待加密内容
* @param key 公钥 长度32字符
* @return
*/
public static String DESEncrypt(String text, String key) {
try {
// 进行DES3加密后的内容的字节
DESedeKeySpec dks = new DESedeKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
SecretKey skey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.ENCRYPT_MODE, skey);
byte[] encryptedData = cipher.doFinal(text.getBytes("utf-8"));
// 进行DES3加密后的内容进行BASE64编码
BASE64Encoder base64en = new BASE64Encoder();
return base64en.encode(encryptedData);
} catch (Exception e){
return text;
}
}
/**
* 解密
* @param text 待解密内容
* @param key 公钥
* @return
*/
public static String DESDecrypt(String text, String key) {
try {
// 进行DES3加密后的内容进行BASE64解码
BASE64Decoder base64Decode = new BASE64Decoder();
byte[] base64DValue = base64Decode.decodeBuffer(text);
// 进行DES3解密后的内容的字节
DESedeKeySpec dks = new DESedeKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede");
SecretKey skey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.DECRYPT_MODE, skey);
byte[] encryptedData = cipher.doFinal(base64DValue);
return new String(encryptedData,"utf-8");
} catch (Exception e) {
return text;
}
}
public static void main(String[] args) {
String str=DESEncrypt("1217", "dddaaaaaaaaaaaaaaaaaaaaaaaaaa");
System.out.println(str);
String str2=DESDecrypt(str, "dddaaaaaaaaaaaaaaaaaaaaaaaaaa");
System.out.println(str2);
}