微信小程序开发者工具基础库 2.22.1 aes 解密报 Malformed UTF-8 data

问题:
微信小程序开发者工具基础库 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, "+")

以上方法均无效

阅读 4.5k
1 个回答

已经解决, 是微信的基础库问题, 现在生产和调试工具都可以编译

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏