如何修复:SunTls12RsaPremasterSecret KeyGenerator 不可用

我在尝试使用 Javax.mail 创建 SSL 连接时遇到“KeyGenerator not available”错误。


该项目在 3 到 4 年前就可以运行,它是对 JDK1.8 和新 JRE 的更新。我认为问题在于更新项目的一些基本怪癖。


我已经关注了这里列出的所有内容。


我将 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]

.....

我希望代码此时创建一个连接。我可以做些什么来解决这个问题?


哈士奇WWW
浏览 1083回答 2
2回答

翻过高山走不出你

无论如何,您都应该将 Java 8 更新到当前的补丁级别,但根据这个问题,您至少需要补丁级别 192 而不是 131。这是 OpenJDK 的问题,但对于 Oracle Java 来说似乎是一样的。我假设您的代码正在连接到自您上次使用以来已更新到 TLS 1.2 的服务器。

隔江千里

不知道为什么,但这种方法在 Eclipse 中帮助了我:https ://www.codetd.com/en/article/9438315首选项 -> 已安装的 JRE -> 编辑您的 java 8 JRE 并“恢复默认值”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java