java.security.InvalidAlgorithmParameterException

博客内容讲述了在调用腾讯云人脸识别服务时遇到的Java安全异常,异常信息为`InvalidAlgorithmParameterException`,指出DH密钥大小必须是64的倍数且在512到1024之间。作者怀疑是腾讯云Java版本变动引起,但最终发现是本地Java版本与系统默认版本冲突。通过切换到自定义的Java版本并更新环境变量,成功解决了问题,接口恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误信息

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.<init>(DHCrypt.java:128)
        at sun.security.ssl.DHCrypt.<init>(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版本:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六个沃德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值