модуль crypto-js импортирован, но не работает должным образом - PullRequest
0 голосов
/ 23 мая 2019

Я работаю над проектом, использующим машинопись и синтаксис 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 Ответ

1 голос
/ 23 мая 2019

В вашем коде вы ссылаетесь на результат вызова функции 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 заключается в том, что, как и все собственные модули, он встроен в среду выполнения NodeJS и, следовательно, не требует загрузки из внешнего модуля.

...