javascript – 我的CryptoJS加密/解密不起作用

我有一个 JSON数组的数组,其值我试图用CryptoJS加密,然后打印用于另一个文件,其中这些值应该使用用户给定的密码来解密.

但我做错了什么,我在解密URL时得到“未捕获的错误:格式错误的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示例……帮忙,好吗?

解决方法

错误消息通常意味着数据未正确解密,并且生成的明文字节不会形成有效的UTF-8字符.

要检查几件事:

>首先,确保您使用相同的密码进行加密和解密.您可能希望保留正确密码的哈希值,以便在用户进行解密之前验证用户是否提供了正确的密码.>其次,确保值项[key]是加密前的字符串. CryptoJS无法加密JSON对象.你必须先将它序列化.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...