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);
благодаря чужому вопросу