Как преобразовать ArrayBuffer из SubtleCrypto.sign в строку - PullRequest
0 голосов
/ 29 августа 2018

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

https://en.wikipedia.org/wiki/UTF-8#Description
const arrayBufferInUniCode = stringToArrayBufferInUnitCode("foo");

const signatureArrayBuffer = await SubtleCrypto.sign({name: "HMAC",hash: { name: "SHA-256"}}, {private key}, arrayBufferInUniCode);

Но похоже, что буфер массива, возвращаемый из sign, не в формате Unicode. Если я попытаюсь обработать его, как определено в https://en.wikipedia.org/wiki/UTF-8#Description, чтобы попытаться превратить его в строку, он не будет работать - он не содержит правильную последовательность байтов.

Любая идея, как обработать буфер массива из функции sign

1 Ответ

0 голосов
/ 29 августа 2018

Шифрование является двоичным, и произвольный двоичный код недопустим в Юникоде. Таким образом, зашифрованный вывод обычно не является юникодом.

Просто сохраните как двоичный файл или, если требуется кодировка символов, преобразуйте зашифрованные данные в ASCII, используя кодировку Base64. При расшифровке преобразовать обратно в двоичный файл до расшифровки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...