是否有可能從byte []生成java.security.cert.X509Certificate?從byte []生成X509Certificate?
40
A
回答
58
當然。
證書對象可以由CertificateFactory的實例創建 - 特別是配置爲創建X509證書的實例。這可以像這樣創建:
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
然後,你需要通過它包含證書的字節的InputStream。你的答案
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
-1
InputStream stream = null;
byte[] bencoded = javax.xml.bind.DatatypeConverter.parseBase64Binary(x509CertificateStr);
try {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) certFactory.generateCertificate(stream);
} catch (java.security.cert.CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
這個問題沒有提到base-64,並且'stream'的初始化丟失了。這段代碼會拋出一個'NullPointerException'。 – EJP 2016-03-23 11:51:05
相關問題
- 1. 使用bouncycastle生成X509Certificate X509v3CertificateBuilder
- 2. 如何從證書庫中獲取X509Certificate並生成XML簽名數據?
- 3. 無法使用Php WS02生成X509Data和X509Certificate標籤WS02
- 4. X509Certificate和XmlDsig
- 5. Bouncycastle:X509CertificateHolder到X509Certificate?
- 6. 重複的X509Certificate
- 7. 獲取的byte []從列表<Byte>
- 8. 從X509Certificate對象導出私鑰
- 9. 從SOAP安全頭獲取X509Certificate
- 10. 無法從X50Principal獲取UniqueIdentifier X509Certificate
- 11. 如何從任意HTTPS URL獲取X509Certificate?
- 12. 在PreviewFrame上成功[byte] []
- 13. 如何從byte []創建FileStreame?
- 14. 生成從WSDL
- 15. Android API無法獲得X509Certificate
- 16. 如何在HttpWebRequest中包含X509Certificate?
- 17. X509Certificate和.NET Compact Framework 3.5
- 18. 從maskedTextBox獲取byte [](或char [])
- 19. 從bmp創建一個byte []#
- 20. 從`const char *'轉換爲`byte'
- 21. 從Byte Aarray獲取圖片
- 22. 從floatbuffer轉換爲byte []
- 23. 從CSR生成PFX
- 24. 從NSMutableDictionary生成JSON
- 25. 從生成文件
- 26. 生成C++從MATLAB
- 27. 生成從移動
- 28. 從vba生成uml
- 29. 從xml生成'relaxed'xsd
- 30. 從html生成xml
感謝:這可以通過包裝你的字節數組在ByteArrayInputStream來實現。但是我在最後一行得到了「(java.security.cert.CertificateException)java.security.cert.CertificateException:無法解析證書:java.io.IOException:空輸入」。 InputStream不是空的,但它拋出異常 – 0bj3ct 2015-06-12 07:22:17
同樣的事情發生在我身上,因爲我沒有仔細考慮我在做什麼。就我而言,這是因爲我試圖用keystore中的字節而不是密鑰庫中的證書來完成上述操作。從密鑰庫中提取證書,獲取編碼字節,然後處理這些是上面這個答案爲我工作的原因。 – 2015-11-13 22:12:14
在我的情況下,問題是byte []是基於64編碼...錯誤消息是有點誤導性的「空輸入」。也許它可以幫助某人... – riskop 2016-06-09 15:17:39