我有一个api谁使用DES
我知道是坏事...但我无法改变这一点,我必须支持这个旧的遗留系统(我有一个rmi客户端部分我的身边)
我也想找到一种方法来在jdk1.9上启用DES
算法
我的程序在旧的jdk上运行良好
/usr/java/jdk-9.0.4/conf/security/java.security
和价值:jdk.tls.legacyAlgorithms
但是我不知道如何修改我尝试的默认值
dk.tls.legacyAlgorithms= \
K_NULL, C_NULL, M_NULL, \
DH_anon, ECDH_anon, \
RC4_128, RC4_40, DES_CBC, DES40_CBC, \
3DES_EDE_CBC, \
DES_CBC, \
DES
和somme其他值,但没有成功
完整堆栈跟踪
java.security.NoSuchAlgorithmException: Unsupported secret key algorithm: DES
at java.base/com.sun.crypto.provider.DHKeyAgreement.engineGenerateSecret(DHKeyAgreement.java:387)
at java.base/javax.crypto.KeyAgreement.generateSecret(KeyAgreement.java:660)
at com.adesoft.security.EncryptedPassword._cipher(Unknown Source)
at com.adesoft.security.EncryptedPassword.cipher(Unknown Source)
at com.adesoft.login.WebSessions.connect(Unknown Source)
at com.adesoft.beans.SessionBean.setPassword(Unknown Source)
at util.ade.AdeSebastient.getRWConnection(AdeSebastient.java:59)
adesoft是我的传统rmi客户端 util.ade.AdeSebastien - >我在哪里使用客户端尝试连接到我的rmi系统
如果索姆一个人知道这个困难 感谢答案 0 :(得分:1)
对于其他有相同难度的人
我将此参数传递给jdk
-Djdk.crypto.KeyAgreement.legacyKDF=true
框架游戏是这样完成的
play2 -jvm-debug 9999 ~run -Djdk.crypto.KeyAgreement.legacyKDF=true
我现在看一下,如果不能把它放在jdk
的安全文件中