javascript - 格式错误的 utf-8 数据 cryptoJS
问题描述
我正在尝试创建一个 JSON 对象,使用 AES 对其进行加密,然后发送数据,但是当我解密它时出现错误。以下代码完美运行,它加密和解密所需的信息。
var encrypted = CryptoJS.AES.encrypt(JSON.stringify(token), 'AGsrv54SDG2DA');
console.log("token is :" + encrypted.toString());
//U2FsdGVkX19QYpU9XWLESHzRB7uvFMtc1J/pCbJjXelTHyeEmU4LCsIMpYZGl9Bs157sX2f47fGeAW4EIaCGiPATxX2PdpZ YMdvPKDIaPYPnmlEJa9yZWyfXf80FNbkRM9Jo9M8GrMiAg8baK6S8GH7GdwxeZEVVkLJpFpgFBUPS3xn2sy/bMHWvOK0lPT0
var bytes = CryptoJS.AES.decrypt(encrypted.toString(), 'AGsrv54SDG2DA');
console.log('BYTES BEFORE:' + bytes);
//bytes : 7b2254797065223a22415554485f434f4445222c22554944223a226e6866476a424c30306c5866735763783332333275587171306c6932222c22434944223a22486f6d655370616365434944222c2245584154223a22546875204d617920333120323031382031373a32333a323920474d542b30303030202855544329227d
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
console.log("auth token UID for test is " + decryptedData.UID); //this works 100%
return {token : encrypted.toString()};
该return
语句将加密数据的字符串版本返回到我的网页。然后将令牌发送回另一个云功能,该功能尝试将其解密如下:
inToken = req.body.code;
console.log("auth token given:" + inToken);
//U2FsdGVkX19QYpU9XWLESHzRB7uvFMtc1J/pCbJjXelTHyeEmU4LCsIMpYZGl9Bs157sX2f47fGeAW4EIaCGiPATxX2PdpZ YMdvPKDIaPYPnmlEJa9yZWyfXf80FNbkRM9Jo9M8GrMiAg8baK6S8GH7GdwxeZEVVkLJpFpgFBUPS3xn2sy/bMHWvOK0lPT0
var bytes = CryptoJS.AES.decrypt(inToken, 'AGsrv54SDG2DA');
console.log('BYTES AFTER:' + bytes);
//7b2254797065223a22415554485f434f4445222c22554944223a226e6866476a424c30306c5866735763783332333275587171306c6932222c22434944223a22486f6d655370616365434944222c2245584154223a22546875204d617920333120323031382031373a32333a323920474d542b30303030202855544329227d
var jsonToken = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
然而这抛出
Error: Malformed UTF-8 data at Object.stringify
解决方案
推荐阅读
- typeahead - 不能在另一个函数中调用 typeahead
- reactjs - 路由中带有额外斜杠的 URL 不适用于 react-router
- opendaylight - 如何配置 bgp-ls 对等体
- swift - “任何”类型的值没有成员“valueForKeyPath”
- javascript - 如何从使用 clone() 复制的内容中删除类名
- html - 验证正数和无效日期 ANGULAR FORM
- javascript - 无法使用 express js 发布到嵌套数组
- c++ - 与 unique_ptr 配对的正确方法是什么?
- r - 使用数据子集时如何在 data.table 中创建新列并计算中位数
- git - 如何比较 BitBucket 中的两个提交?