如何解决从证书中获取公钥
| 我正在尝试使用以下方法获取证书的公钥:FileInputStream fin = new FileInputStream(\"PathToCertificate\");
CertificateFactory f = CertificateFactory.getInstance(\"X.509\");
X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
但我收到以下错误:
Exception in thread \"main\" java.lang.classCastException: sun.security.x509.X509CertImpl cannot be cast to codec.x509.X509Certificate
at sergas_testcertificates.Main.main(Main.java:54)
有谁知道这个错误是关于什么的?
提前致谢
解决方法
您为
X509Certificate
导入的类错误。
您可能会寻找java.security.cert.X509Certificate
而不是codec.x509.X509Certificate
。
, X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
由于您仅提取公共密钥,因此可以使用证书类。工厂类将决定要返回的证书类型。
Certificate certificate = f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
如果出于其他原因需要强制转换,请检查导入并进行更改,X509Certificate应该来自javax.security.cert。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。