openssl 生成 SHA-256

openssl 生成 SHA-256

我正在尝试使用 openssl 使用 HMAC-SHA-256 创建文件的加密哈希。我很困惑为什么在输出中看到“没有这样的文件或目录”错误。

我使用的密钥位于名为 mykey.txt 的文件中。

这是我的命令:

openssl dgst -sha256 -hmac -hex hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

和输出

在此输入图像描述

答案1

-hmac将密钥作为参数(参见手册),因此您的命令要求使用密钥 的 HMAC -hexhexkey:...被视为文件名,因为它不以破折号开头,并且openssl文件名后不带选项,因此以下-out也是文件名。

要获取具有以十六进制字符串形式给出的密钥的 HMAC,您需要使用-mac hmac-macopt hexkey:<key>。请注意,一起使用-hmac <key>-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、密钥abc616263十六进制一致。 (请注意此处末尾的换行符message。)

所以,看来你可能想要

openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

既然我们谈论的是密码学,这很难; OpenSSL 并不总是具有最易于使用的界面,我建议您自己验证所有内容,至少两次,而不是相信我的话。

答案2

openssl dgst -sha256 -hmac -hex-macopt十六进制键:$(cat mykey.txt) -out hmac.txt /bin/ps

答案3

我的 2 美分,如果你使用的是 iOS(或 Mac OS...),厌倦了我写的。

https://apps.apple.com/it/app/hmac-sha256generator/id6448465719?l=en

相关内容