java.security.InvalidAlgorithmParameterException

错误信息

java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
        at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
        at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:675)
        at sun.security.ssl.DHCrypt.(DHCrypt.java:128)
        at sun.security.ssl.DHCrypt.(DHCrypt.java:114)
        at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:706)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:265)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:961)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:897)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1033)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1369)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1353)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
       

原因:

调用腾讯云人脸识别服务,在获取AccessToken时自己的客户端抛出该异常,服务上线后没做过变动,突然报这个错误怀疑腾讯云那边java版本变更了。但最后对接人反馈也是什么都没有做,这就很奇怪了。

查看本地java版本:

查看 环境变量,java使用的并发设置的java版本

先把java版本换成自己设置的版本再看看情况,尽量不要用自带的,由于环境变量都设置了,但java还是使用自带的,应该是做了链接:

确认是加了链接,那再加个自己的java版本:

java.security.InvalidAlgorithmParameterException_第1张图片

若需要删除:update-alternatives --remove java $JAVA_HOME/bin/java

切换到自己的java版本后,重启服务,接口能正常调用了,由于之前用的自带的java版本没有报错,而最近却突然报错了,经测试,本地客户端换了java版本能正常。

你可能感兴趣的:(java,java)