首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openssl生成SHA-256

openssl生成SHA-256
EN

Unix & Linux用户
提问于 2018-05-20 15:33:45
回答 3查看 20K关注 0票数 6

我试图使用openssl来使用HMAC-SHA-256创建文件的加密散列。我很困惑为什么在输出中看到‘没有这样的文件或目录’错误。

我使用的密钥在一个名为mykey.txt的文件中。

这是我的命令:

代码语言:javascript
复制
openssl dgst -sha256 -hmac -hex hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

以及输出

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2018-05-20 16:32:42

openssl -sha256 -hmac -hex -macopt已密钥:$(cat mykey.txt) -out hmac.txt /bin/ps

票数 3
EN

Unix & Linux用户

发布于 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

测试:

代码语言:javascript
复制
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末尾的换行符。)

所以,看来你可能想

代码语言:javascript
复制
openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

既然我们谈论的是密码学,这很难;而OpenSSL,它并不总是有最容易使用的接口,我建议你也自己验证每件事,至少两次,而不是用我的话。

票数 11
EN

Unix & Linux用户

发布于 2023-04-27 16:13:28

如果你在iOS (或者Mac .)厌倦了我写的..。

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

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/444978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档