首页 > 解决方案 > 如何在使用 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,
});

非常感谢您获得正确代码的任何帮助。谢谢

标签: javascriptnode.jsangularexpresscryptojs

解决方案


试试这样

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

推荐阅读