今天在使用java实现DH密钥交换算法时,出现了以下错误:
出错行在这里:
原因分析:
由于JDK版本不同,在Java 8 update 161版本以后就会出现此问题,根本原因还是DH密钥长度至少为512位,而AES算法密钥没有这么长,密钥长度不一致引起的。
解决方法:
配置JVM的系统变量:-Djdk.crypto.KeyAgreement.legacyKDF=true
具体操作:
在eclipse的run Configurations里面配置系统变量,如下图,左侧选择相应的应用,右侧Arguments下填入咱们要添加的系统变量,然后apply,运行程序,错误解决!
版权声明:本文为hejjiiee原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。