PublicKey.getEncoded()返回包含SubjectPublicKeyInfo(x.509)格式的公钥的字节数组,我如何将它转换为RSA公钥编码?将SubjectPublicKeyInfo格式的公钥转换为RSAPublicKey格式java
8
A
回答
12
使用充气城堡的SubjectPublicKeyInfo
,就像这样:
byte[] encoded = publicKey.getEncoded();
SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(
ASN1Sequence.getInstance(encoded));
byte[] otherEncoded = subjectPublicKeyInfo.parsePublicKey().getEncoded();
1
下面的代码片段工作对我来说,不得不虽然使用BouncyCastle的。
byte[] keyBytes = key.getEncoded(); // X.509 for public key
SubjectPublicKeyInfo subPkInfo = new SubjectPublicKeyInfo((ASN1Sequence)ASN1Object.fromByteArray(keyBytes));
byte[] rsaformat = subPkInfo.getPublicKey().getDEREncoded();
3
没有BouncyCastle的:
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(publicKeyBinary));
相关问题
- 1. 将PGP公钥转换为RSA公钥XML格式
- 2. 转换RSA公钥PEM格式
- 3. 将OpenSSL生成的RSA公钥转换为OpenSSH格式(PHP)
- 4. 将pfx格式的私钥转换为pem格式
- 5. 将.pem私钥转换为.key格式
- 6. 格式公钥
- 7. 从PuTTY Windows格式转换公钥到Mac格式
- 8. 将SQL格式转换为java格式的正则表达式
- 9. 将Java公共DSA或RSA密钥转换为Node可以识别的格式
- 10. 将RSA公钥编码为DER格式
- 11. 将HHMM字符串转换为Java格式的GMT格式
- 12. 将xml格式转换为Java
- 13. 将Tree转换为newick格式。 java
- 14. 将公共函数格式转换为公共共享函数格式
- 15. 使用公式将格式0d 22h 41min转换为任意格式的时间
- 16. 将电子表格公式转换为java
- 17. 在Java上将日期格式转换为其他格式
- 18. 转换RSA密钥为PEM格式
- 19. excel公式或宏自动将长格式数据转换为宽格式
- 20. 将“RC”格式转换为“A1” - Excel公式
- 21. 如何将MathType公式转换为MathML格式?
- 22. 如何将PKCS#8格式的PEM私钥转换为传统格式?
- 23. 将xml转换为网格格式
- 24. 将.dll格式转换成.exe格式?
- 25. iOS SecItemCopyMatching RSA公钥格式?
- 26. 将格式为.dwz的视频转换为其他格式
- 27. 将PHP生成的公钥转换为Java公钥
- 28. 如何将RSA公钥转换为Java中的ssh-rsa公钥?
- 29. 将RSAPI公钥转换为X509Certificate(Java)
- 30. 转换JSON格式为XML格式
这也不符合pourpose。在这里我们刚刚将公钥转换成RSAPublicKey对象,但是当我说RSAPublicKey.getEncoded()时,我仍然得到x.509格式的密钥而不是RSA格式。 –
编辑答案。希望你不介意使用BC。 – martijno
非常感谢!你的方法奏效了。我张贴我使用的确切片段。 –