通过 DER 算法解码 Java 中的证书

decoding certificate in Java by DER algorithm

我必须在 Java class 中打开证书文件。证书由 DER 算法编码。我怎样才能解码这个文件?

我通过这种方式将证书上传到我的 servlet

InputStream in = getResourceAsStream("/certyficate.cer");
BufferedReader br = new BufferedReader(new InputStreamReader(in))

现在我必须解码这个文件,我该怎么做?

现在我遇到了麻烦,get.Instance()

我完全按照文档中的方式使用了它,但是我遇到了与此屏幕截图类似的错误

我该如何解决?

首先,您不能使用 Reader。它是二进制的。此任务通过 java.security.CertificateFactory.

完成

鉴于您的 InputStream in 包含证书, 你可以解码证书 通过 java.security.cert.CertificateFactory。支持 DER 和 PEM 编码。

您需要的进口商品:

import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

解码证书:

try {
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    X509Certificate cert = (X509Certificate) cf.generateCertificate(in);
} catch (CertificateException e) {
    // handle failure to decode certificate
}