x509证书上的奇怪字符

时间:2016-08-11 16:28:21

标签: java x509 asn.1

我试图打开/解析X509证书的公钥并从文件中检索特定信息。 虽然我几周前才开始编写Java,但是我使用Java作为语言来实现它,所以noob在这里:)

import java.io.FileInputStream;
import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

public class CertificateTest {
public static void main (String[] args) throws CertificateException, IOException{

    FileInputStream fis = new FileInputStream("CertificateFile.pem");
    BufferedInputStream bis = new BufferedInputStream(fis);

    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    X509Certificate cert = (X509Certificate) cf.generateCertificate(bis);

    System.out.print(cert);

    }    
}

好的,我可以解析文件并将其打印在控制台上,但文件没有"渲染"好.. 文件的某些部分似乎没问题,但其他部分就像这样:

0E.!.....W>._...
.....Q.9.u-U....
P...". ^..6...>Q
U.3..I.k....K...
.e.....

我想要检索的是:

System.out.print(cert.getSubjectUniqueID());

它返回null。这可能是正确的,因为这是一个可选字段,但我几乎可以肯定该字段存在。

当我打印方法时

System.out.print(cert.getSubjectX500Principal());

输出是:

OID.2.5.4.45=#03090090B3D51F30020000, OU=03

字节串:90B3D51F30020000实际上是我想从文件中检索的,所以我认为.getSubjectUniqueID应该返回这个值。或整个字符串03090090B3D51F30020000。

此文件使用ASN1表示法编码。

所以,如果有人能提供一些关于这里发生的事情的见解,我将不胜感激。因为我觉得我的知识停在这里。而且我已经搜索了很多,并且找不到与此类似的任何问题。 问候。

0 个答案:

没有答案