crypto-js模块已导入,但无法正常运行

时间:2019-05-23 18:12:04

标签: node.js typescript import node-modules cryptojs

我正在使用打字稿和es6语法的项目中工作。我已经安装了crypto-js模块npm install crypto-js和他的打字稿类型npm install @types/crypto-js

我将其导入到我的文件中,就像这样:`

import * as CryptoJS from 'crypto-js';

但是当我尝试像文档中那样使用它时:

console.log(CryptoJS.MD5('my message'));

它显示了一个对象结构而不是一个不可读的字符串:

WordArray.init {words: Array(4), sigBytes: 16}
sigBytes: 16
words: Array(4)
    0: -1952005731
    1: -1042352784
    2: 804629695
    3: 720283050
    length: 4
__proto__: Array(0)
__proto__: Object

我忘记了什么?

1 个答案:

答案 0 :(得分:1)

在您的代码中,您引用了调用MD5函数的输出,该函数在传递给typeof时返回其类型为“对象”。

尽管文献记载不多,但您可以使用以下方式获得MD5值的字符串表示形式:

console.log(CryptoJS.MD5('my message').toString())

产生:"8ba6c19dc1def5702ff5acbf2aeea5aa"

如果计划使用NodeJS运行代码,则可以考虑使用其本机crypto模块而不是crypto-js

const crypto = require('crypto')
const h = crypto.createHash('md5')
h.update('my message')
console.log(h.digest('hex'))

其中还会显示:"8ba6c19dc1def5702ff5acbf2aeea5aa"

在这里使用NodeJS的本机crypto module的好处是,像所有本机模块一样,它被捆绑到NodeJS运行时中,因此不需要从外部模块加载。