加密
public static final String KEY_ALGORITHM = "AES";
/**
* 随机生成16位字符
*/
private static final String KEY = "uwvxczp7x6qpV3kC";
/**
* 加密
*
* @param text 原文
* @return 密文
*/
public static String encode(String text) throws Exception {
// 使用Key加密
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(StandardCharsets.UTF_8), KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
byte[] byteContent = text.getBytes(StandardCharsets.UTF_8);
cipher.init(Cipher.ENCRYPT_MODE, key);
return Base64.encodeBase64String(cipher.doFinal(byteContent));
}
解密
/**
* 解密
*
* @param encode 密文
* @return 原文
*/
public static String decode(String encode) throws Exception {
// 使用Key解密
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(StandardCharsets.UTF_8), KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, key);
return new String(cipher.doFinal(Base64.decodeBase64(encode)), StandardCharsets.UTF_8);
}
调试结果
public static void main(String[] args) throws Exception {
String text = "123456abcd!@#$";
String encode = encode(text);
System.out.println(encode);
System.out.println(decode(encode));
}