ref: 加密解析网站: http://tool.chacuo.net/cryptaes/
AES 256 加密解密 Java实现:
public class AES256Util {
/**
* AES256 加密
*
* @param content
* @param secretKey
* @return
* @throws Exception
*/
public static String Encrypt(String content, String secretKey) throws Exception {
byte[] raw = secretKey.getBytes("utf-8");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
// "算法/模式/补码方式"
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(content.getBytes("utf-8"));
// 此处使用BASE64做转码
return new Base64().encodeToString(encrypted);
}
/**
* AES256 解密
*
* @param content
* @param secretKey
* @return
* @throws Exception
*/
public static String Decrypt(String content, String secretKey) throws Exception {
try {
byte[] raw = secretKey.getBytes("utf-8");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
// 先用base64解密
byte[] encrypted1 = new Base64().decode(content);
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original, "utf-8");
return originalString;
} catch (Exception e) {
log.error("AES256解密失败", e);
throw new RuntimeException("AES256解密失败");
}
}
}