JAVA JDK1.9 java.security.NoSuchAlgorithmException : Unsupported secret key algorithm: DES

标签 java security

我有一个使用 DES 的 api我知道这很糟糕......但我无法改变这一点,我必须支持这个旧的遗留系统(我身边有一个 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

还有一些其他值(value),但没有成功

完整的堆栈跟踪

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 系统

如果有人了解这一困难 谢谢

最佳答案

对于其他有同样困难的人

我将此参数传递给jdk -Djdk.crypto.KeyAgreement.legacyKDF=true

用框架玩就是这样完成的 play2 -jvm-debug 9999 ~run -Djdk.crypto.KeyAgreement.legacyKDF=true

我现在看看是否不能将其放入jdk的安全文件中

关于JAVA JDK1.9 java.security.NoSuchAlgorithmException : Unsupported secret key algorithm: DES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49778846/

相关文章:

ruby-on-rails-3 - Heroku 中的 Ruby 1.9.3p327

ssl - 使用 SSL 证书查看站点时出现问题

java - 无法在java中使文本区域不可编辑

java - 线程行为:Java Beginner

java - tomcat 和 java.security.Security

java - 尝试下载 Java JDK 时出现 SSL 错误

java - Spring Shedlock 时序问题

java - 获取在我的 Web 应用程序上运行的 EJB 的观察者模式

java - 如何在 java 中使用 DMA 或 RDMA?

security - XOR 加密有什么问题?