crypto-js.min.js:1 Uncaught Error: Malformed UTF-8 data

crypto-js.min.js:1 Uncaught Error: Malformed UTF-8 data

问题描述

如上所示,上面是我使用AES算法加解密数据时遇到的错误,本来前后端加密和解密没啥问题,但是当改为Json格式以后就出问题了。前端无法解密,并且报出上述错误。debug的时候发现得到的Json字符格式也是对,前端也没有发现问题。

后端代码

String str = JSON.toJSONString(response);

其中response对象中包含了一个Map<String , String>对象。其中JSONalibaba的库

解决

排查一番后找到了答案:

这是因为alibaba的Json库在将Map对象转换为字符串时,可能会出现非UTF-8编码的字符,这些字符在使用crypto-js进行解密时可能会导致编码问题,从而导致解密失败。

后面用了ObjectMapper 代替JSON,代码如下:

ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(response);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值