通过 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
}
我必须在 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
}