【发布时间】:2021-07-26 11:28:17
【问题描述】:
我正在尝试从如下创建的公钥中获取指纹:
openssl genrsa -out test.pem -aes128 -passout pass:testphrase 2048
openssl rsa -pubout -in test.pem -out test_public.pem -passin pass:testphrase
我正在将公钥上传到我的云提供商,确认指纹为70:d6:cb:9c:c7:95:ad:6f:49:84:4f:d1:fb:71:a8:53,我可以使用此命令从私钥获取指纹
openssl rsa -in test.pem -pubout -outform DER | openssl md5 -c
(stdin)= 70:d6:cb:9c:c7:95:ad:6f:49:84:4f:d1:fb:71:a8:53
我试过了
openssl rsa -pubin test_public.pem -pubout -outform DER | openssl md5 -c
但这给了我d4:1d:8c:d9:8f:00:b2:04:e9:80:09:98:ec:f8:42:7e。
我想直接从公钥中获取指纹,我觉得我在这里遗漏了一些简单的东西。
【问题讨论】:
-
您可以保存并检查最后两个 openssl 命令的 DER 格式输出,并使用 lapo.it/asn1js 查看它们的结构,这可能有助于了解它们的不同之处,从而具有不同的指纹。
-
我无法重现该问题。这两个语句在我的机器上返回相同的哈希值。您确定确定相关键的哈希值吗?顺便说一句,最后一个 OpenSSL 语句在
test_public.pem之前缺少一个-in。但这可能只是一个复制/粘贴错误,因为这会产生错误消息而不是错误的哈希。 -
我不知怎的错过了
rsa: Use -help for summary. (stdin)= d4:1d:8c:d9:8f:00:b2:04:e9:80:09:98:ec:f8:42:7e的rsa: Use -help for summary.部分 -
@Robert:你不需要网站;
openssl asn1parse [-inform der]一样好。但是你甚至不需要解析;如前所述,这里的真正问题是第二个命令有语法错误并且不产生 any 输出数据(仅在 stderr 上出现错误消息),您可以看到与 @987654332 的区别@ 或cmp-- 或dir或fc /b。 -
@Topaco:实际上
rsa会产生错误消息和no 输出,而没有input 的md5 -c会产生无数据的哈希也就是d41d...值的空或 null。