将 PEM 格式的公钥转换为 DER

Pre*_*rem 9 openssl

我有一个 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>
Run Code Online (Sandbox Code Playgroud)

我有一些 PEM 格式的公钥。如何将其更改为上面列出的密钥格式?

gar*_*Red 14

PEM 文件只是一个经过 Base64 编码的 DER 文件。从一个转换到其他的你可以用openssl-inform-outform参数。每个都采用PEM, DERor NET(一种过时的 Netscape 格式,您可以忽略)。

您可以使用以下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
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下命令查看该文件的 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
Run Code Online (Sandbox Code Playgroud)

当然,如果您的密钥不是 RSA 密钥,这对您毫无用处,但由于您的问题没有规定它是什么类型的密钥,我猜:-)