gpt4 book ai didi

openssl - 如何从 X.509 证书中获取十六进制格式的公钥

转载 作者:行者123 更新时间:2023-12-04 13:47:36 40 4
gpt4 key购买 nike

是否可以通过 openssl 仅获取十六进制格式的公钥?我使用了以下命令:

openssl x509 -in a.pem -text -noout

这只是打印证书,其中公钥以十六进制格式提供,但我无法解析。这个命令例如:
openssl x509 -in a.pem -pubkey -noout

按以下格式返回公钥:
-----BEGIN PUBLIC KEY-----
#######
####===
-----END PUBLIC KEY----

有一个更好的方法吗?我期待以十六进制格式输出。

最佳答案

因为(经过讨论)它是 Base64(装甲 ASCII)格式的自签名 key ,像 tomeko.net 这样的工具足以将其编码为十六进制。

原答案:

来自 this article , 对于受信任的证书:

Parsing public keys form a X.509 certificate and representing them as a Hex number turned out simple and easy.


openssl x509 -modulus -noout < pub.cer | sed s/Modulus=/0x/

Just replace pub.cer with the certificate file you want to parse



这使用 modulus option .

结果应该是这样的:
0xB1E057678343....

注意:以上内容适用于 X.509v3 文件,该文件包含以“-- BEGIN ...”行为前缀的 ASCII (Base64) 装甲数据(即实际的 PEM 文件)。

如果您收到以下错误,则表示您正在尝试查看 DER 编码的证书:
unable to load certificate
PEM routines:PEM_read_bio:no start line:pem_lib.c:
Expecting: TRUSTED CERTIFICATE

对于 der 文件,还要注意 the public key in DER format (which is a way of expressing X.509 objects as a sequence of bytes) includes more than just the modulus, but also the exponent (usually short) and the algorithm identifier

转换 certificate from DER to PEM first :
openssl x509 -inform der -in certificate.cer -out certificate.pem

然后再试一次

关于openssl - 如何从 X.509 证书中获取十六进制格式的公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735134/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com