加密对称解密算法如下:
对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。
对称解密的目标密文为 Base64_Decode(encryptedData)。
对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节。
对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返回。
实现步骤方法如下:
导入加密包commons-codec,bcprov-jdk16(支持PKCS#7填充),Java默认支持PKCS5填充不支持PKCS#7填充
commons-codec
commons-codec
1.11
org.bouncycastle
bcprov-jdk16
1.46
2.实现微信对称解密算法
/**
* 编码格式
*/
private static final String ENCODING = "UTF-8";
/**
* 加密算法
*/
public static final String KEY_ALGORITHM = "AES/CBC/PKCS7Padding";
public static String decryptUserInfo(String encryptedData,String iv,String sessionKey) {
try {
byte[] data = Base64.decodeBase64(encryptedData);
byte[] as