Как воспроизвести шифрование Bash HMAC в Node.js - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть этот фрагмент оболочки, который мне нужно воспроизвести в Node.js

echo "hellokev" | openssl dgst -binary -sha1 -hmac "mysecret" | openssl base64;

Моя текущая попытка Node:

node -e "
var crypto = require('crypto');
var credential = crypto.createHmac('sha1', 'mysecret').update('hellokev').digest('base64')
console.log(credential);
";

, которая не выдает такой же вывод.Что мне не хватает?

1 Ответ

0 голосов
/ 05 декабря 2018

echo добавляет символ новой строки при вводе в вашу команду openssl dgst.Чтобы сделать ваши выходы равными, вы можете использовать один из следующих подходов:

  • Используйте echo -n "hellokev", инструктируя echo, чтобы пропустить символ новой строки.
  • Используйте printf "hellokev" длялучший, более портативный способ печати в оболочке.printf не добавляет символ новой строки, пока вы не сообщите ему.
  • Добавьте \n к вашему вводу функции update(), например .update('hellokv\n'), если вам не разрешено изменять фрагмент оболочки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...