PublicKey.getEncoded(), trả về một mảng byte chứa khóa công khai trong định dạng SubjectPublicKeyInfo (x.509), làm cách nào để chuyển đổi khóa thành mã hóa khóa công khai RSA?Chuyển đổi khóa công khai ở định dạng SubjectPublicKeyInfo thành định dạng RSAPublicKey java
8
A
Trả lời
12
Sử dụng Castle của Bouncy SubjectPublicKeyInfo
, như thế này:
byte[] encoded = publicKey.getEncoded();
SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(
ASN1Sequence.getInstance(encoded));
byte[] otherEncoded = subjectPublicKeyInfo.parsePublicKey().getEncoded();
1
Đoạn mã sau đây làm việc cho tôi, phải dùng BouncyCastle mặc dù.
byte[] keyBytes = key.getEncoded(); // X.509 for public key
SubjectPublicKeyInfo subPkInfo = new SubjectPublicKeyInfo((ASN1Sequence)ASN1Object.fromByteArray(keyBytes));
byte[] rsaformat = subPkInfo.getPublicKey().getDEREncoded();
3
Without BouncyCastle:
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(publicKeyBinary));
Các vấn đề liên quan
- 1. chuyển đổi định dạng EBCDIC thành định dạng ASCII?
- 2. Chuyển đổi chuỗi ở định dạng ddMMyyyy thành DateTime
- 3. chuyển đổi chuỗi thành định dạng java.util.date trong java
- 4. Chuyển đổi ngày giờ thành định dạng được chỉ định
- 5. Làm cách nào để chuyển đổi khóa riêng PEM được định dạng PKCS # 8 thành định dạng truyền thống?
- 6. Trích xuất khóa công khai từ chứng chỉ ở định dạng DER
- 7. Cách lưu khóa công khai từ chứng chỉ ở định dạng .pem
- 8. Trình định dạng định dạng DateTime 'Z' ở đâu?
- 9. Cách chuyển đổi chuỗi định dạng chuẩn .NET thành chuỗi định dạng Excel
- 10. Chuyển đổi C# DateTime thành định dạng MongoDB
- 11. Chuyển đổi định dạng ngày trong bash
- 12. iOS5 chuyển đổi dự án thành ARC không thành công do "Lỗi ở định dạng tệp" Cách khắc phục?
- 13. Chuyển đổi định dạng mặc định java.util.date thành Dấu thời gian trong Java
- 14. Chuyển đổi chuỗi thành định dạng ngày trong android
- 15. Java chuyển đổi hình ảnh GIF sang định dạng PNG
- 16. Chuyển đổi định dạng thời gian thành số bằng R
- 17. Chuyển đổi ngày JSON định dạng
- 18. Định dạng lại Dữ liệu Bảng điều khiển Định dạng Rộng thành Định dạng Dài
- 19. Mã định dạng ở Định dạng Doxia Apt
- 20. Chuyển đổi Android sang định dạng số
- 21. ngày sql chuyển đổi thành định dạng chuỗi
- 22. Chuyển đổi ngày thành định dạng "dd-MMM-yyyy" C#
- 23. Chuyển đổi chuỗi thành ngày, định dạng: "dd.mm.yyyy"
- 24. Chuyển đổi dữ liệu có thể định dạng thành PDF
- 25. Chuyển đổi định dạng ngày giờ thành giây
- 26. Chuyển đổi ngày PHP thành định dạng ngày javascript
- 27. chuyển đổi mảng POST thành định dạng json
- 28. Chuyển đổi Lịch thành XMLGregorianCalendar với định dạng cụ thể
- 29. Chuyển đổi chuỗi được định dạng PEM thành java.security.cert.X509Certificate
- 30. Ngày định dạng chuyển đổi sử dụng Java
này không phục vụ cho pourpose. ở đây chúng ta vừa đưa khóa công khai vào một đối tượng RSAPublicKey, nhưng khi tôi nói RSAPublicKey.getEncoded(), tôi vẫn nhận được khóa ở định dạng x.509 và không phải định dạng RSA. –
Đã chỉnh sửa câu trả lời. Hy vọng bạn không nhớ sử dụng BC. – martijno
Cảm ơn một nhóm! Cách tiếp cận của bạn đã hoạt động. Tôi đang đăng đoạn trích chính xác mà tôi đã sử dụng. –