java rsa sha1_如何在Java中读取sha1WithRSAEncryption公共DER密钥?

在Java中尝试使用X509EncodedKeySpec从DER格式的文件读取sha1WithRSAEncryption公共密钥时遇到InvalidKeySpecException。问题源于ObjectIdentifier解析错误,可能由于数据不是有效的对象ID。证书信息显示版本为3,RSA Public Key为1024位。解决方案可能涉及正确解析DER编码的RSA公钥。
摘要由CSDN通过智能技术生成

已解决

密码学Python

如何在Java中读取sha1WithRSAEncryption公共DER密钥?649788f17101bff39e9643602f4d66a1.png10

openssl x509 -inform DER -text

在我的DER文件上给出了这个问题底部的转储。

我尝试用以下内容阅读:static PublicKey getCertKey() throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {

URL keyUrl = Resources.getResource(LManager.class, "iid.der");

byte[] keyBytes = Resources.toByteArray(keyUrl);

X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);

KeyFactory kf = KeyFactory.getInstance("RSA");

return kf.generatePublic(spec);

}

我得到:java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96)

at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:205)

at java.security.KeyFactory.generatePublic(KeyFactory.java:334)

....

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at Caused by: java.security.InvalidKeyException: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96)

at sun.security.x509.X509Key.decode(X509Key.java:397)

at sun.security.x509.X509Key.decode(X509Key.java:403)

at sun.security.rsa.RSAPublicKeyImpl.(RSAPublicKeyImpl.java:83)

at sun.security.rsa.RSAKeyFactory.generatePublic(RSAKeyFactory.java:298)

at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:201)

... 25 more

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

a9:cb:e1:41:03:30:df:c5

Signature Algorithm: sha1WithRSAEncryption

Issuer: REDACTED

Validity

Not Before: Jun  5 14:28:02 2014 GMT

Not After : Jun  5 14:28:02 2024 GMT

Subject: REDACTED

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (1024 bit)

Modulus (1024 bit):

00:87:bd:18:df:ff:49:12:b6:92:76:e3:c9:21:b4:

86:8d:f2:a9:03:37:7b:64:c3:85:63:bc:0f:67:bc:

f9:76:6a:72:4e:f9:e2:01:52:a3:df:40:6d:3d:91:

99:70:a5:6a:66:c8:ef:1b:18:1d:91:5a:a5:b1:0b:

0b:81:fd:d7:27:22:86:fa:c3:8d:b4:93:d5:98:e4:

2d:08:20:6b:43:44:d6:ae:37:79:2e:bc:65:e4:c3:

71:c4:9c:5d:04:8d:8a:f4:a5:cc:96:52:f0:72:59:

8e:0a:b3:06:55:e3:65:fb:63:b5:d2:4b:5d:e1:38:

87:0b:e8:d2:c0:f8:7f:78:fd

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Subject Key Identifier:

25:D6:CC:08:15:CA:B6:F0:9C:59:DC:14:52:2C:EF:B5:41:76:51:38

X509v3 Authority Key Identifier:

keyid:25:D6:CC:08:15:CA:B6:F0:9C:59:DC:14:52:2C:EF:B5:41:76:51:38

DirName:/C=US/ST=Washington/L=Seattle/O=Amazon.com Inc./CN=ec2.amazonaws.com

serial:A9:CB:E1:41:03:30:DF:C5

X509v3 Basic Constraints:

CA:TRUE

千斤

2019.11.25

95fa9268de11d0061c77acb40a6f985f.png3364

3037648d6a74d46918a474e105002d34.png收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值