我该如何解决:SunTls12RsaPremasterSecret KeyGenerator不可用

时间:2019-02-15 16:17:06

标签: java email

尝试使用Javax.mail创建SSL连接时遇到“ KeyGenerator不可用”错误。

该项目在3-4年前就已经投入使用,并且是对JDK1.8和新JRE的更新。我认为这是更新项目的一些基本问题。

我已关注Here.

中列出的所有内容

我将JKD1.8.0_131 / jre / lib / ext / sunjce_provider.jar的路径添加到我的项目库中,以便它同时存在于JRE库和项目类路径中。

java.security.NoSuchAlgorithmException: SunTls12RsaPremasterSecret KeyGenerator not available
at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:169) ~[?:1.8.0_131]
at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:223) ~[?:1.8.0_131]
at sun.security.ssl.JsseJce.getKeyGenerator(JsseJce.java:251) ~[?:1.8.0_131]
at sun.security.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:78) ~[?:1.8.0_131]
.....

我期望代码在这一点上创建一个连接。我该怎么办才能解决此问题?

2 个答案:

答案 0 :(得分:0)

无论如何,您都应该将Java 8更新到当前的补丁程序级别,但是根据此issue,您至少需要补丁程序级别192而不是131。这对于OpenJDK是一个问题,但是对于Oracle Java来说似乎是一样。

我假设您的代码正在连接到自您上次使用以来已更新为TLS 1.2的服务器。

答案 1 :(得分:0)

不知道为什么,但是这种方法在日食方面对我有帮助:https://www.codetd.com/en/article/9438315

首选项->已安装的JRE->编辑Java 8 JRE和“恢复默认值”