/**
* @Author: shang
* @Date: Created in 9:26 2021/6/15
* @ClassName: AesCbcUtil
* @Description: 微信用户加密信息解密工具
*/
public class AesCbcUtil {
static {
// BouncyCastle是一个开源的加解密解决方案
Security.addProvider(new BouncyCastleProvider());
}
/**
* AES解密
*
* @param data // 密文,被加密的数据
* @param key // 秘钥
* @param iv // 偏移量
* @return
* @throws Exception
*/
public static JSONObject decrypt(String data, String key, String iv) throws Exception {
// 被加密的数据
byte[] dataByte = Base64.decodeBase64(data);
// 加密秘钥
byte[] keyByte = Base64.decodeBase64(key);
// 偏移量
byte[] ivByte = Base64.decodeBase64(iv);
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");
AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");
parameters.init(new IvParameterSpec(ivByte));
cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化
String resultString = new String(cipher.doFinal(dataByte), StandardCharsets.UTF_8);
return JSONObject.parseObject(resultString);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Aes解密工具类
最新推荐文章于 2024-05-19 09:45:17 发布