crypto-js解密失败,报错uncaught error: malformed utf-8 data

第一步:

验证前后端加密参数:首先确保前端和后端使用相同的AES算法模式、密钥和IV。例如,如果后端使用AES-256但前端密钥只有16字节(AES-128长度),就会造成解密错误。密钥长度应与算法匹配(128位=16字节,256位=32字节)。另外确认IV长度为16字节(AES块大小)。密钥/IV不一致是导致乱码的首要原因,应当排除。

第二步:

统一使用Base64传输密文:相比十六进制,Base64 编码的密文长度更短,而且由[A–Z,a–z,0–9,+,/]字符组成,更适合通过JSON或其他媒介传输。CryptoJS默认的toString()就返回Base64字符串。建议在前端加密时直接获取Base64密文,在后端返回Base64密文字符串。这可以简化前端的处理逻辑,避免手动Hex解析/Base64转换潜在的差错

第三步:

当有前后端加解密情况,需查看请求服务大小限制,默认很容易超出

crypto-js解密失败,报错uncaught error: malformed utf-8 data 配图 1