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

标签 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 我可以从符号映射中获取与 1.2.840.113549.1.9.1 键对应的值(它是 E),但我不知道如何处理这个 #160d313233617364406173642e6473。

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

最佳答案

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());

关于java - 将 X509Certificate 主题 DN 转换为可读字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22912902/

相关文章:

asn.1 - 如果标签类别和标签编号唯一,则 ASN.1 标签是否唯一?

python - 如何使用 pyasn1 解码 ASN1 编码数据(嵌套结构化数据)?

java - Math.round 没有按我想要的方式工作

java - 如何使 ArrayAdapter.getView() 在 ArrayList() 上工作?

java - 结合验证 PKCS#7 签名所需的所有任务

java - BouncyCaSTLe Java - 解码 DER 编码的 OCTET 字符串

python - asn1 将文本解析为 json

java - Android 多个时间选择器

java - 为什么这不会打印任何整数?

java - 使用 Java 将 ASN1 序列解码为 RSA 公钥