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
非常感謝!你的方法奏效了。我張貼我使用的確切片段。 –