我有一个 JSON 数组数组,我尝试使用 CryptoJS 对其值进行加密,然后打印以在另一个文件中使用,其中这些值应使用用户给定的密码进行解密。
但我做错了什么,在解密 URL 时收到“未捕获错误:格式错误的 UTF-8 数据”。
加密.js:
var encrypted = CryptoJS.AES.encrypt(item[key], pass);
json[j] += encrypted.ciphertext.toString(CryptoJS.enc.Base64);
解密.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 http://cryptojs.altervista.org/secretkey/doc/doc_aes_cryptojs-v3.html例如...请帮忙,好吗?
该错误消息通常意味着数据未正确解密,并且生成的明文字节未形成有效的 UTF-8 字符。
有几点需要检查:
- 首先,确保您使用相同的密码进行加密和解密。您可能需要保留正确密码的哈希值,以便在使用密码进行解密之前验证用户是否提供了正确的密码。
- 其次,确保该值
item[key]
是加密前的字符串。 CryptoJS 无法加密 JSON 对象。您必须先将其序列化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)