Openssl
openssl 生成 SHA-256
我正在嘗試使用 openssl 創建使用 HMAC-SHA-256 的文件的加密雜湊。我對為什麼在輸出中看到“沒有這樣的文件或目錄”錯誤感到困惑。
我使用的密鑰在一個名為 mykey.txt 的文件中。
這是我的命令:
openssl dgst -sha256 -hmac -hex hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps
和輸出
openssl dgst -sha256 -hmac -hex -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps
-hmac
將 key 作為參數(參見手冊),因此您的命令要求使用 key 的 HMAC-hex
。hexkey:...
被視為文件名,因為它不以破折號開頭,並且openssl
在文件名之後不帶選項,因此以下-out
也是文件名。要使用以十六進製字元串形式給出的密鑰獲取 HMAC,您需要使用
-mac hmac
and-macopt hexkey:<key>
。請注意,將-hmac <key>
and-mac hmac
一起使用不起作用,並且-macopt
需要-mac hmac
.測試:
openssl dgst -sha256 -hmac abc <<< "message" openssl dgst -sha256 -hmac abc -macopt hexkey:12345678 <<< "message" openssl dgst -sha256 -mac hmac -macopt hexkey:616263 <<< "message" perl -MDigest::HMAC=hmac_hex -MDigest::SHA=sha256 \ -le 'print(hmac_hex("message\n", "abc", \&sha256))'
全部給出與消息、密鑰或十六進制
99592e56fcde028fb41882668b0cbfa0119116f9cf111d285f5cedb000cfc45a
隨機線上 HMAC 計算器一致的雜湊值 。(請注意此處末尾的換行符。)message\n``abc``616263``message
所以,看來你可能想要
openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps
因為我們談論的是密碼學,這很難;和 OpenSSL,它並不總是具有最易於使用的界面,我建議您自己驗證所有內容,至少兩次,而不是相信我的話。