2017-03-21 24 views
-1

我正在尝试使用openssl命令行生成SHA256 HMAC,但输出不正确。相较于Wikipedia example我得到不同的东西:生成SHA512 HMAC不能从命令行工作

$ openssl dgst -sha256 -hmac "key" <<< "The quick brown fox jumps over the lazy dog"                         
(stdin)= abb26bc1a42fb16503a4d5b44d5082ed8fe79229b3c057c6d770956777b83b15 

产生相同的结果,维基百科的例子快速PHP例子:

print hash_hmac('sha256', 'The quick brown fox jumps over the lazy dog', 'key'); 
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8 

我已经尝试了多种方案供OpenSSL的命令,但无法弄清楚我做错了。

+2

Stack Overflow是编程和开发问题的网站。这个问题似乎与题目无关,因为它不涉及编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。另请参阅[我在哪里发布有关Dev Ops的问题?](http://meta.stackexchange.com/q/134306) – jww

+0

好的,我不知道。我会在未来发布。 – eblood

回答

3

在这里字符串(<<<)增加了一个新行的文本,所以你实际上是计算字符串的HMAC:

"The quick brown fox jumps over the lazy dog\n" 

使用echo -n和管道进入openssl作品如你所愿:

$ echo -n "The quick brown fox jumps over the lazy dog" | openssl dgst -sha256 -hmac "key" 
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8 
+0

Bah!非常感谢。 – eblood