java如何解读证书里的内容(通过string 来生成X509Certificate对象)?

我可以读到证书文件里的内容,如下:假如证书为zyj.crtFilefile=newFile("D:\\zyj.crt");InputStreaminStream=newF... 我可以读到证书文件里的内容,如下:假如证书为zyj.crt
File file = new File("D:\\zyj.crt");
InputStream inStream = new FileInputStream(file);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate oCert = (X509Certificate)cf.generateCertificate(inStream);
info = oCert.getSubjectDN().getName();
System.out.println("证书拥有者:"+info);

但现在的问题的,我的项目得到的不是证书文件,而是一个string。 这个string里的内容和zyj.crt文件里的内容是一样的。内容片断如下:
-----BEGIN CERTIFICATE----- MIICMjCCAZsCCQD3/xw1j77JATANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
.....省略
-----END CERTIFICATE-----

我怎么通过这个string 来生成X509Certificate对象 然后读取里面的内容呢?
展开
 我来答
哆啦爱橙
推荐于2019-10-04 · TA获得超过4763个赞
知道小有建树答主
回答量:24
采纳率:100%
帮助的人:8987
展开全部

那个字符串是Base64编码后的

试着把String 转成inputStream,

InputStream inStream = new ByteArrayInputStream(caString.getBytes('UTF-8'));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding

就是把这个String 写到一个文件里,然后用上面的方法读这个文件。

刘瑞涛1234
2018-01-06 · TA获得超过1.2万个赞
知道小有建树答主
回答量:179
采纳率:100%
帮助的人:19.2万
展开全部

1.我怎么通过这个string 来生成X509Certificate对象 

2.笨办法:就是把这个String 写到一个文件里,然后用上面的方法读这个文件。但这样效率太低了。

3.我还试着把String 转成inputStream,InputStream inStream newByteArrayInputStream(caString.getBytes("UTF-8"));用这句替代 上面写的第二行代码。但是在执行第四行的时候报错。。

4.java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Unsupported encoding

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式