【问题标题】:How to reproduce Bash HMAC encryption in Node.js如何在 Node.js 中重现 Bash HMAC 加密
【发布时间】:2018-12-05 01:40:06
【问题描述】:

我有这个需要在 Node.js 中重现的 shell sn-p

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

我当前的节点尝试是:

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

不会产生相同的输出。我错过了什么?

【问题讨论】:

    标签: node.js linux bash openssl cryptography


    【解决方案1】:

    echo 在输入您的openssl dgst 命令时附加一个换行符。为了使您的输出相等,您可以使用以下方法之一:

    • 使用echo -n "hellokev",指示echo 省略换行符。
    • 使用printf "hellokev" 获得更好、更便携的shell 打印方式。 printf 不会添加换行符,除非您告诉它。
    • 如果不允许修改 shell sn-p,请将 \n 附加到 update() 函数的输入中,例如 .update('hellokv\n')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      相关资源
      最近更新 更多