Crypto JS получение Sha256 ha sh как строка UTF-8 - PullRequest
0 голосов
/ 09 мая 2020

Я использую crypto- js для хеширования в React Native.

У меня есть фрагмент кода, использующий другую библиотеку, которая может подписывать строки или двоичные данные с помощью ключей Ed25519.

Я пытаюсь преобразовать crypto-js SHA256 ha sh в строку UTF-8, чтобы я мог использовать его с библиотекой. Но он продолжает говорить: Malformed UTF-8 data

Я не уверен, что вообще не могу преобразовать его в UTF-8? Это странно, потому что я смог успешно сделать это, используя крипто-модуль Node - просто не смог сделать это, используя crypto-js

Вот мой код: https://repl.it/repls/CornsilkPlasticSpof

Кроме того, добавив сюда, чтобы предотвратить смерть ссылки,

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

const dataToBeHashed = "testing";

const toBeSigned = CryptoJS.SHA256(dataToBeHashed).toString(CryptoJS.enc.Utf8);

console.log(toBeSigned);

Это дает

Error: Malformed UTF-8 data
    at Object.stringify (/home/runner/CornsilkPlasticSpof/node_modules/crypto-js/core.js:513:24)
    at WordArray.init.toString (/home/runner/CornsilkPlasticSpof/node_modules/crypto-js/core.js:268:38)
    at /home/runner/CornsilkPlasticSpof/index.js:5:52
    at Script.runInContext (vm.js:131:20)
    at Object.<anonymous> (/run_dir/interp.js:156:20)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:

1 Ответ

0 голосов
/ 09 мая 2020

A ha sh - это фактически случайные байты. Эти случайные байты вряд ли будут правильно сформированными символами UTF-8. Что вам нужно сделать, так это преобразовать ваши байты в Base64, который будет в UTF-8.

...