我意识到这不是你要求的,但是没有必要重新发明轮子和写一个bash版本。
[me@home] echo -n "value" | openssl dgst -sha1 -hmac "key" 57443a4c052350a44638835d64fd66822f813319
或者:
[me@home] echo -n "value" | openssl sha1 -hmac "key" 57443a4c052350a44638835d64fd66822f813319
请记住使用-n with echo或换行符将字符附加到字符串,并更改您的数据和哈希。
该命令来自OpenSSL包,应该已经安装(或轻松安装)在您选择的Linux / Unix,Cygwin等。
请注意,旧版本的openssl(例如RHEL4附带的)可能不提供-hmac选项。
作为一个替代解决方案,但主要证明结果是一样的,我们也可以从命令行调用PHP的hmac_sha1():
[me@home]$ echo '<?= hash_hmac("sha1","key") ?>' | PHP 57443a4c052350a44638835d64fd66822f813319