将X509Certificate主题DN转换为可读字符串

时间:2014-04-07 12:49:08

标签: java bouncycastle asn.1

我有一个带有以下主题的虚拟x509证书

Subject: C=.., ST=..., O=..., OU=..., CN=.../emailAddress=123asd@asd.ds

方法

certificate.getSubjectX500Principal().getName()

返回

1.2.840.113549.1.9.1=#160d313233617364406173642e6473,CN=...,OU=...,O=...,ST=...,C=...

我需要将此DN解析为可读字符串。

使用bouncycastle我可以从符号图(它是E)获得对应于1.2.840.113549.1.9.1键的值,但我不知道如何处理这个#160d313233617364406173642e6473。

如何将此#160d313233617364406173642e6473解析为可读字符串?

1 个答案:

答案 0 :(得分:1)

import javax.xml.bind.DatatypeConverter;    

byte[] data = DatatypeConverter.parseHexBinary(yourHexString);    
ASN1InputStream s = new ASN1InputStream(new ByteArrayInputStream(data));
ASN1String str = (ASN1String) s.readObject();
System.out.println(str.getString());