代码之家  ›  专栏  ›  技术社区  ›  stix359

将DER公钥转换为PEM并返回

  •  0
  • stix359  · 技术社区  · 1 年前

    我有一个DER格式的公钥。使用openssl的asn1parse为我提供了以下内容:

    0:d=0 h1=4 1= 265 cons: SEQUENCE
    4:d=1 h1=4 1= 256 prim: INTEGER: -4B95.........831 (I removed most of it)
    264:d=1 h1=2 1=    3 prim: INTEGER 
    

    我使用以下方法将其转换为PEM:

    openssl rsa -RSAPublicKey_in -in myderkey -inform DER -outform PEM -out mypubkey
    

    转换后asn1parse看起来像这样:

    0:d=0 h1=4 1= X cons: SEQUENCE
    4:d=1 h1=2 1= X cons: SEQUENCE
    ...
    ...
    ...
    

    我使用以下方法将其转换回DER:

    openssl rsa -pubin -in mypubkey -inform PEM - outform DER -out backToDerKey
    

    转换回后,asn1parse没有变化(当密钥为PEM格式时保持不变)

    有没有办法将PEM公钥转换为DER,并使ASN1与原始DER密钥相同?

    尝试以编程方式创建创建公钥并将其保存到文件中,但得到了与openssl相同的结果。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Matt Caswell    1 年前

    使用 -RSAPublicKey_out 论证到 openssl 以保留原始的PKCS1格式RSA密钥。

    您需要在希望OpenSSL发出PKCS1格式的每个阶段都这样做 rsa 命令。

    所以,如果你想让PEM文件采用这种格式,那么就这样做:

    openssl rsa -RSAPublicKey_in -in myderkey -inform DER -out mypubkey -RSAPublicKey_out
    

    如果你想把它放在DER文件中,那么就这样做:

    openssl rsa -pubin -in mypubkey -outform DER -out backToDerKey -RSAPublicKey_out
    
    推荐文章