【问题标题】:get SHA256 hash of public key获取公钥的 SHA256 哈希
【发布时间】:2018-08-28 03:39:36
【问题描述】:

我有一个证书 mycert.pem 。我通过命令得到了证书的公钥

openssl x509 -pubkey -noout -in mycert.pem  > pubkey.pem

如何获取公钥的 SHA256 哈希?

【问题讨论】:

标签: openssl sha256 sha sha2


【解决方案1】:

openssl -pubkey 以 PEM 格式输出密钥(即使您使用 -outform DER)。

假设您有一个 RSA 公钥,您必须将密钥转换为 DER 格式(二进制),然后获取其哈希值:

 openssl rsa -in pubkey.pem -pubin -outform der | openssl dgst -sha256

【讨论】:

  • @Leem 您确定您在创建文件pubkey.pem 的同一文件夹中执行了该命令吗?
  • 是的,我确定。它还输出routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22/libressl/crypto/pem/pem_lib.c:704
  • 嗯...实际上,问题是我生成的证书和公钥的大小为 0。那里出了点问题……
  • @Leem 所以这意味着openssl x509 -pubkey -noout -in mycert.pem 命令不起作用。请修复您的证书并就我发布的命令提供反馈,
  • 我正在修复它,会在这里回复您。谢谢!
【解决方案2】:

您可以使用 ssh-keygen。先转换文件格式

ssh-keygen -i -m PKCS8 -f pubkey.pem > NEWpubkey.pem

接下来获取指纹

ssh-keygen -lf NEWpubkey.pem

获取类型推断

2048 SHA256:hYAU9plz1WZ+H+eZCushetKpeT5RXEnR8e5xsbFWRiU 无注释 (RSA)

【讨论】:

    【解决方案3】:

    您可以任一

    使用以下命令直接从证书文件生成sha256sum

    openssl x509 -pubkey -noout -in <your-certificate-filename>.pem | openssl dgst -sha256

    使用这个简单的命令生成证书的公钥:

    openssl x509 -pubkey -noout -in <your-certificate-filename>.pem > <public-key-filename>.pem

    并使用以下命令进行验证:

    cat <public-key-filename>.pem | sha256sum

    【讨论】:

      猜你喜欢
      • 2018-01-21
      • 2017-03-17
      • 2021-03-23
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多