这个问题通常是因为解密的数据不是 UTF-8 编码的造成的。可以尝试使用其他解码方式,例如 Base64 解码。

具体操作如下:

  1. 使用 Base64 解码加密的数据:
var encryptedData = '...'; // 加密的数据
var decodedData = CryptoJS.enc.Base64.parse(encryptedData);
  1. 解密加密的数据:
var key = '...'; // 密钥
var decryptedData = CryptoJS.AES.decrypt(decodedData, key, { mode: CryptoJS.mode.ECB });
  1. 将解密后的数据转换成 UTF-8 编码的字符串:
var decryptedString = decryptedData.toString(CryptoJS.enc.Utf8);

这样就可以避免 'malformed utf-8 data' 的问题了。

前端 CryptoJS 解密报 Malformed UTF-8 Data 解决方案

原文地址: https://www.cveoy.top/t/topic/oocJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录