node.js - 使用 Crypto 的 AES 加密和使用 CryptoJS 的解密返回空字符串
问题描述
我的后端使用Crypto
来自 node.js的字符串加密。
在客户端,我想使用CryptoJS
. 但是,我总是得到一个空字符串。
加密(加密):
function encrypt(value) {
const cipher = crypto.createCipher('aes-256-ctr', 'SECRET_STRING');
let crypted = cipher.update(value,'utf8','hex');
crypted += cipher.final('hex');
return crypted;
}
解密(CryptoJS):
const decrypt = (value) => {
const bytes = CryptoJS.enc.Hex.parse(value);
const decrypted = CryptoJS.AES.decrypt(
bytes,
'SECRET_STRING',
{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.NoPadding
},
);
return decrypted.toString(CryptoJS.enc.Utf8);
};
这将返回一个空字符串。我误解了什么,我做错了什么?
解决方案
推荐阅读
- python - Python - 如何使用 json.load 遍历 JSON 数据
- sql - Jpa 规范 ORA-01791: 不是 SELECTed 表达式
- php - 我正在寻找搜索分页代码。我的代码给出了正确的结果,但不能在分页中工作
- memory - 使 OCaml 的垃圾收集器更可预测
- java - 嵌套哈希图最佳实践?
- excel - 将数据行复制到 Excel 中的另一个工作表并添加列 VBA
- mongodb - 当我尝试使用 {cookie: { secure: true }} 会话配置时,我得到“ForbiddenError: invalid csrf token”。我该如何实施?
- gcc - 链接器如何在内存段中放置符号
- mysql - 定位文件控制实例 maxplayers
- google-apps-script - 获取特定表的谷歌电子表格的字体单元格和背景色单元格