javax.security.cert.X509Certificate 与 java.security.cert.X509Certificate?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4414648/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 06:16:11  来源:igfitidea点击:

javax.security.cert.X509Certificate vs java.security.cert.X509Certificate?

javasecuritycertificate

提问by Narobik Olga

Did you spot the difference in the title? (for me, it took some time)

你发现标题的不同了吗?(对我来说,花了一些时间)

So I used bouncy castle with connection to java.security.cert.X509Certificatein order to create certificates. Now I'm looking for a way to create a java.security.cert.X509Certificatefrom raw bytes. I haven't any method to do this in java.security.cert.X509Certificatebut there is one(the getInstance static method) in javax.security.cert.X509Certificate.

所以我使用了连接到的充气城堡java.security.cert.X509Certificate来创建证书。现在我正在寻找一种java.security.cert.X509Certificate从原始字节创建一个的方法。我没有任何方法可以做到这一点, java.security.cert.X509Certificatejavax.security.cert.X509Certificate.

The problem is I cannot cast a javax.security.cert.X509Certificateto java.security.cert.X509Certificate.

问题是我不能投射javax.security.cert.X509Certificatejava.security.cert.X509Certificate.

Any ideas on what to do, to transform raw bytes into a java.security.cert.X509Certificate?

关于如何将原始字节转换为java.security.cert.X509Certificate?

Also, what's the differences between the one abstract class and the other class? Why does java has two of them with different functionality?

另外,一个抽象类和另一个类之间有什么区别?为什么java有两个具有不同功能的?

回答by President James K. Polk

The javax version is deprecated. Use CertificateFactoryto generate a certificate from raw bytes. There is an example in the javadocs.

不推荐使用 javax 版本。使用CertificateFactory从原始字节生成证书。javadocs中有一个例子。

回答by Venu

This happened for me because I am using j2se but imported javax classes. Certificate and X509Certficate classes exists both in J2SE and in J2EE.

这发生在我身上,因为我使用的是 j2se 但导入了 javax 类。Certificate 和 X509Certficate 类存在于 J2SE 和 J2EE 中。

Imports in J2SE - Not javax.security...

J2SE 中的导入 - 不是 javax.security...

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

import java.security.cert.Certificate;

导入 java.security.cert.Certificate;

Not these.

不是这些。

import javax.security.cert.X509Certificate;