javascript - 如何在使用 express.js 中的 crypto.js 加密数据时以 Angular 5 解密
问题描述
我在 express.js 中使用以下代码加密了一些文本:-
var crypto = require('crypto'),
algorithm = 'aes-256-ctr',
password = '6A80FD8D38D579D1090F6CDB62CA34CA',
iv = '79b67e539e7fcadf';
var cipher = crypto.createCipheriv(algorithm,password,iv)
var crypted = cipher.update('hello world','utf8','hex')
crypted += iv.toString('hex') + cipher.final('hex');
console.log(crypted)
现在,我想以 5 角解密这个 encryptedText。但我找不到任何方法来做到这一点。我尝试以下代码: -
import * as CryptoJS from 'crypto-js';
var key = CryptoJS.enc.Utf8.parse('6A80FD8D38D579D1090F6CDB62CA34CA');
var iv = CryptoJS.enc.Utf8.parse('79b67e539e7fcadf');
var decrypted = CryptoJS.AES.decrypt(encryptedTextHere, key, {
iv: iv,
mode: CryptoJS.mode.CTR,
});
非常感谢您获得正确代码的任何帮助。谢谢
解决方案
试试这样
import { AES, enc, mode } from 'crypto-js';
const key = enc.Utf8.parse('6A80FD8D38D579D1090F6CDB62CA34CA');
const iv = enc.Utf8.parse('79b67e539e7fcadf');
const decrypted = AES.decrypt('encryptedTextHere', key, {
iv: iv,
mode: mode.CTR
});
console.log(decrypted.toString(enc.Utf8));
还要确保安装打字
npm i @types/crypto-js --save-dev
推荐阅读
- javascript - Maximo 自动化 JavaScript 中的 service.error() 或 service.setWarning() 不会在 UI 上显示弹出窗口
- reactjs - 在 React Context 中 render() 函数的作用是什么?
- c# - 如何在 Unity 中按屏幕大小缩放对象
- reactjs - 刷新页面时反应上下文未定义
- flutter - 我只能选择图库图像或照片,但不能进入相机并在颤动中单击图像。请解决我的问题
- automation - 我无法通过 Cucumber 并行执行来控制多线程
- nvidia - nvprof 警告:CUPTI 和 CUDA 注入库的路径可能未在 LD_LIBRARY_PATH 中设置
- php - 从包创建类的新对象时出错
- python - 在Python中编码十六进制“40”我做错了什么?
- javascript - JavaScript 的整数加法问题