private String aesDecrypt(String content, String key) {
try {
//base64解码全数据
byte[] message = Base64.getUrlDecoder().decode(content);
Security.addProvider(new BouncyCastleProvider());
//填充模式:PKCS7(128)
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
Key sKeySpec = new SecretKeySpec(key.getBytes(), "AES");
//初始化向量:base64decode后密文的前16 bytes
byte[] ivData = new byte[16];
System.arraycopy(message, 0, ivData, 0, 16);
IvParameterSpec iv = new IvParameterSpec(ivData);
//获取密文数据字段
byte[] messageBtye = new byte[message.length - 16];
System.arraycopy(message, 16, messageBtye, 0, message.length - 16);
//加密模式:CBC
cipher.init(Cipher.DECRYPT_MODE, sKeySpec, iv);
byte[] result = cipher.doFinal(messageBtye);
// 明文
return new String(result, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}