我有一个似乎采用以下SubjectPublicKeyInfo
格式的公钥。我说“出现”是因为我对这个密钥的唯一了解是它加载一个 Java 应用程序X509EncodedKeySpec
,根据文档,该应用程序用于以SubjectPublicKeyInfo
格式加载密钥。
我无法使用openssl
,pkcs8
或x509
来解析文件asn1parse
。
下面是asn1解析的结果:
openssl asn1parse -in public_key.der -inform der
0:d=0 hl=4 l= 290 cons: SEQUENCE
4:d=1 hl=2 l= 13 cons: SEQUENCE
6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption
17:d=2 hl=2 l= 0 prim: NULL
19:d=1 hl=4 l= 271 prim: BIT STRING
Run Code Online (Sandbox Code Playgroud)
基于该输出,我尝试通过尝试不同的偏移量和长度来提取实际密钥,然后将其保存到 .der 文件中:
openssl asn1parse -in public_key.der -inform der -offset <> -length <l> -out public_key.der
Run Code Online (Sandbox Code Playgroud)
然后我将输出反馈给openssl
:
openssl pkcs8 -inform DER -nocrypt -in public_key.der
Run Code Online (Sandbox Code Playgroud)
但不断收到同样的错误:
解密密钥140436029183664时出错:错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误标签:tasn_dec.c:1338:140436029183664:错误:0D06C03A:asn1编码例程:ASN1_D2I_EX_PRIMITIVE:嵌套asn1错误:tas n_dec.c:852:140436029183664:错误: 0D08303A:asn1 编码例程:ASN1_TEMPLATE_NOEXP_D2I:嵌套 asn1 错误:tasn_dec.c:772:Field=version, Type=PKCS8_PRIV_KEY_INFO
更新:输出
openssl asn1parse -in public_key.der -inform der -strparse 19
0:d=0 hl=4 l= 266 cons: SEQUENCE
4:d=1 hl=4 l= 257 prim: INTEGER :F19011E8903CFE79920F5D06CBF6B57593038DBDDEFEF30C796287264100DC930E2F5F2C7CFBAA84C0212228288D76B97EC7FC1FF6409770292386B5EFC15C3AF999F6FED14EA1D3419EB87F8188E1D21358F95EEA4642716A298A23CE6F98E03DE8D56A4101F39983F4444A3924BBD49A9C721BE5F4637EF09ACE0486C065433CA9B3353D6852364EC4211BEFC24AFD0CB7BFD2ECAE0D0F8B48BE7E7CBE336ABED9A7C0E0B6D468D4D6E6C05FA1680BB2BD7E8DA6FE201BAFDD6B30CF3A7381BCC47DC7F8B4F52715C052DEF3EB361064B2AD8523E6C186B59A320DC7DFE092FD2D668AD5516EAE25103FD66DA579E097D10A4ACAAFF3B9CA528448B2A625FF
265:d=1 hl=2 l= 3 prim: INTEGER :010001
Run Code Online (Sandbox Code Playgroud)
文件SubjectPublicKeyInfo
可以与openssl rsa -pubin -inform der|pem -file inputfile -modulus
.
如果是二进制则使用der
,如果是 base64 编码,则使用pem
。
归档时间: |
|
查看次数: |
14727 次 |
最近记录: |