RSA 到 DER 异常

RSA to DER anomaly

我有一个 PEM 格式的私钥,当我在上面 运行 一个 openssl asn1parse 时,我得到以下信息:

    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

但是,如果我将此 PEM 转换为 DER,并再次执行 openssl asn1parse,我将丢失该包装器,并且生成的文件大小会小一些。

如何将 RSA PEM 转换为 DER,同时保留上述包装器?

您在评论中提到的 -----BEGIN PRIVATE KEY----- header 表示您拥有 PKCS8 格式的私钥。虽然我觉得有点奇怪。我本来希望 asn1parse 输出看起来更像这样:

    0:d=0  hl=4 l=1213 cons: SEQUENCE          
    4:d=1  hl=2 l=   1 prim: INTEGER           :00
    7:d=1  hl=2 l=  13 cons: SEQUENCE          
    9:d=2  hl=2 l=   9 prim: OBJECT            :rsaEncryption
   20:d=2  hl=2 l=   0 prim: NULL              
   22:d=1  hl=4 l=1191 prim: OCTET STRING

请注意,您的输出中没有 INTEGER 字段。

您可以使用 openssl pkcs8 实用程序将 PKCS8 文件从 PEM 转换为 DER

openssl pkcs8 -topk8 -in rsakey.pem -out rsakey.der -outform DER -nocrypt