我有 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并与原始DER密钥具有相同的ASN1?
尝试以编程方式创建公钥并将其保存到文件中,但得到与 openssl 相同的结果。
使用
-RSAPublicKey_out
参数来保留原始 PKCS1 格式 RSA 密钥。您需要在希望 OpenSSL openssl
命令发出 PKCS1 格式的每个阶段执行此操作。
因此,如果您想要 PEM 文件的格式,请按如下操作:rsa
如果您希望将其保存在 DER 文件中,请按以下步骤操作:
openssl rsa -RSAPublicKey_in -in myderkey -inform DER -out mypubkey -RSAPublicKey_out