我试图使用openssl来使用HMAC-SHA-256创建文件的加密散列。我很困惑为什么在输出中看到‘没有这样的文件或目录’错误。
我使用的密钥在一个名为mykey.txt的文件中。
这是我的命令:
openssl dgst -sha256 -hmac -hex hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps以及输出

发布于 2018-05-20 16:32:42
openssl -sha256 -hmac -hex -macopt已密钥:$(cat mykey.txt) -out hmac.txt /bin/ps
发布于 2018-05-20 17:22:55
-hmac将键作为参数(见手册),因此命令使用键-hex请求HMAC。hexkey:...被视为文件名,因为它不是以破折号开头的,而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,键abc或616263的十六进制。(请注意message末尾的换行符。)
所以,看来你可能想
openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps既然我们谈论的是密码学,这很难;而OpenSSL,它并不总是有最容易使用的接口,我建议你也自己验证每件事,至少两次,而不是用我的话。
发布于 2023-04-27 16:13:28
如果你在iOS (或者Mac .)厌倦了我写的..。
https://apps.apple.com/it/app/hmac-sha256generator/id6448465719?l=en
https://unix.stackexchange.com/questions/444978
复制相似问题