Sha256 с байтом [32] с использованием CryptoJS?

Используя CryptoJS, я получил в результате байт [8], когда мне нужно 32, именно этот код:

CryptoJS.SHA256(word);

Как получить 32?

3 ответа

Это кажется немного запутанным, но у меня нет большого опыта работы с CryptoJS, так что, возможно, есть решение, которое требует меньше шагов:

const CryptoJS = require('crypto-js');

let hash   = CryptoJS.SHA256('hello world');
let buffer = Buffer.from(hash.toString(CryptoJS.enc.Hex), 'hex');
let array  = new Uint8Array(buffer);

Если вам нужен правильный массив JS (тот, для которого Array.isArray возвращается true), вы можете использовать это:

let array = Array.from( new Uint8Array(buffer) );

Решение было в моем случае:

let utf16le = CryptoJS.enc.Utf16LE.parse(word);
let utf16Sha256 = CryptoJS.SHA256(utf16le);
return utf16Sha256.toString(CryptoJS.enc.Hex);

благодаря чужому вопросу

CryptoJS.SHA256(word).toString()
Другие вопросы по тегам