问题:
微信小程序开发者工具基础库 2.22.1 aes 解密Aes的decrypt报 Malformed UTF-8 data
其他版本的库调试都是好的,浏览器打也是正常的
const Aes = {
parse: data => {
return CryptoJS.enc.Latin1.parse(data);
},
// AES加密
encrypt: data => {
const dataStr = JSON.stringify(data);
const encrypted = CryptoJS.AES.encrypt(dataStr, Aes.parse(iaweb.key), {
iv: Aes.parse(iaweb.iv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return encrypted.toString();
},
// AES解密
decrypt: data => {
try {
const dataStr = data.replace(/"/g, "+");
const decrypted = CryptoJS.AES.decrypt(dataStr, Aes.parse(iaweb.key), {
iv: Aes.parse(iaweb.iv),
padding: CryptoJS.pad.ZeroPadding
});
console.log(decrypted, "decrypted 值为");
return decrypted.toString(CryptoJS.enc.Utf8);
} catch (e) {
console.log(e, "decrypt 的 err值为");
return data;
}
}
};
已经尝试解决方法:
1.后台已经设置了 格式为 UTF-8
2.https://segmentfault.com/a/11...
3.base64.decode 先解码再解密
4.replace 替换data.replace(/"/g, "+")
以上方法均无效
已经解决, 是微信的基础库问题, 现在生产和调试工具都可以编译