美文网首页
java实现DH密钥交换算法时出现“Unsupported se

java实现DH密钥交换算法时出现“Unsupported se

作者: SsmallLucky | 来源:发表于2018-09-27 14:25 被阅读0次

在应用不对称加密算法中的DH算法时出现了这样的报错提示:“Unsupported secret key algorithm:AES”,字面意思是密钥所用的算法不被支持。随后通过排查,发现是JDK版本的原因,由于JDK8 update 161之后,DH的密钥长度至少为512位,但AES算法密钥不能达到这样的长度,所以导致报错。

解决办法:

  1. 将-Djdk.crypto.KeyAgreement.legacyKDF=true 写入JVM系统变量中,可以在eclipse的run configurations里配置系统变量。

  2. 更换JDK版本,并在eclipse或者intellij idea中将所属过程的JDK版本换成JDK1.8以下版本。需要注意的是,在intellij idea中更改JDK版本后,需要将Project Language Level 一起更换,如下图所示:


    图1

修改完成之后再次运行程序,即可正常打印DH加密和解密的值。

相关文章

网友评论

      本文标题:java实现DH密钥交换算法时出现“Unsupported se

      本文链接:https://www.haomeiwen.com/subject/hceeoftx.html