我有一个 ASN.1 DER 格式的公钥,如下所示:
0:d=0 hl=3 l= 181 cons: SEQUENCE
3:d=1 hl=3 l= 144 cons: SEQUENCE
6:d=2 hl=2 l= 0 prim: PRINTABLESTRING :
8:d=2 hl=3 l= 139 prim: OCTETSTRING [HEXDUMP]: <Some Data>
150:d=1 hl=2 l= 32 prim: OCTET STRING [HEX DUMP]:<some data>
我有一些 PEM 格式的公钥。如何将其更改为上面列出的密钥格式?
答案1
PEM 文件只是经过 Base64 编码的 DER 文件。要从一种转换为另一种,可以使用和openssl
参数。每个都采用、或(一种过时的 Netscape 格式,您可以忽略)之一。-inform
-outform
PEM
DER
NET
您可以使用以下命令将密钥从一种格式更改为另一种格式openssl rsa
(当然假设它是 RSA 密钥):
$ openssl rsa -pubin -inform PEM -in <filename of key in PEM format> -outform DER -out <filename of key in DER format>
writing RSA key
然后,您可以使用以下命令查看该文件的 ASN.1 编码:
$ openssl asn1parse -inform DER -in <filename of DER file>
0:d=0 hl=3 l= 159 cons: SEQUENCE
3:d=1 hl=2 l= 13 cons: SEQUENCE
5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption
16:d=2 hl=2 l= 0 prim: NULL
18:d=1 hl=3 l= 141 prim: BIT STRING
当然,如果您的密钥不是 RSA 密钥,这对您没有用,但由于您的问题没有规定它是什么类型的密钥,我猜:-)