2014-09-11 105 views
0

我們如何輸入值和鍵作爲十六進制值?openssl以十六進制輸入bash

echo -n "value" | openssl dgst -sha1 -hmac "key" 
$value=11111111FFAA2211 
$key=11111111FFAA2211000000000011BBFF 
echo -n "$value" | openssl dgst -sha1 -hmac "$key" 

也不起作用。

回答

2

我剛剛設法解決了它,它使用'-macopt hexkey:string'選項。

echo -n '4869205468657265' | xxd -r -p | openssl dgst -sha512 -mac HMAC -macopt hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b

(標準輸入)= 87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854

key='0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b' value='4869205468657265' echo -n "$value" | xxd -r -p | openssl dgst -sha512 -mac HMAC -macopt hexkey:$key

(標準輸入)= 87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545 e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854

我希望這個答案可以作爲一個迷你教程來幫助人們。

+0

我看到你主要解決了關鍵問題。但是輸入值呢?你如何將11111111FFAA2211轉換爲4869205468657265? – CarlosRos 2015-12-16 11:23:26