我有一个JSON数组数组,其值正在尝试使用CryptoJS进行加密,然后打印以在另一个文件中使用,其中这些值应使用用户指定的密码来解密。
但我做错了什么,在解密网址时我收到“未捕获的错误:格式错误的UTF-8数据”。
encrypt.js:
var encrypted = CryptoJS.AES.encrypt(item[key], pass);
json[j] += encrypted.ciphertext.toString(CryptoJS.enc.Base64);
decrypt.js:
var decrypted = CryptoJS.AES.decrypt(item[key], pass);
html += '<a href="' + decrypted.toString(CryptoJS.enc.Utf8) + '" target="_blank" class="socialico ' + key + '">' + icons[key] + '</a>';
我关注了this示例...帮助,非常好吗?
答案 0 :(得分:12)
该错误消息通常意味着数据未正确解密,并且生成的明文字节不会形成有效的UTF-8字符。
要检查几件事:
item[key]
是一个字符串。 CryptoJS无法加密JSON对象。你必须先将它序列化。