我在Linux上有一个Java 17 Crpytography问题,当Java文档说这是时,请说明模式不支持

发布于 2025-02-08 11:29:01 字数 2078 浏览 2 评论 0原文

似乎我遇到了一个奇怪的情况。

设置: Fedora Linux 36 Java 17(通过软件包管理器JDK/JRE组合包) Maven 17

我试图使用Minecraft World下载工具,但是我可以合理地确保在Java 17中支持的加密货币似乎是非功能的。我希望能得到一些有关在哪里看的指针。

简而言之,我认为“ AES/CFB8/nopadding”是一种有效的加密模式,但我的设置似乎不同意。

我有在此代码块中遇到的错误:

java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CFB8/NoPadding
    at java.base/javax.crypto.Cipher.getInstance(Cipher.java:571)
    at proxy.EncryptionManager.lambda$enableEncryption$15(EncryptionManager.java:366)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.enableEncryption(EncryptionManager.java:363)
    at proxy.EncryptionManager.lambda$sendReplacementEncryptionConfirmation$13(EncryptionManager.java:333)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.sendReplacementEncryptionConfirmation(EncryptionManager.java:314)
    at proxy.EncryptionManager.lambda$setClientEncryptionConfirmation$5(EncryptionManager.java:222)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.setClientEncryptionConfirmation(EncryptionManager.java:211)
    at packets.handler.ServerBoundLoginPacketHandler.lambda$new$1(ServerBoundLoginPacketHandler.java:50)
    at packets.handler.PacketHandler.handle(PacketHandler.java:57)
    at packets.DataReader.readPackets(DataReader.java:163)
    at packets.DataReader.pushData(DataReader.java:118)
    at proxy.ProxyServer.lambda$run$4(ProxyServer.java:86)
    at util.ExceptionHandling.attempt(ExceptionHandling.java:12)
    at proxy.ProxyServer.lambda$run$6(ProxyServer.java:83)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.security.NoSuchAlgorithmException: Unsupported mode CFB8
    at jdk.crypto.cryptoki/sun.security.pkcs11.P11Cipher.engineSetMode(P11Cipher.java:223)
    at java.base/javax.crypto.Cipher$Transform.setModePadding(Cipher.java:385)
    at java.base/javax.crypto.Cipher.getInstance(Cipher.java:564)
    ... 17 more
Encryption failure! Terminating.

seems I have come across a rather odd situation.

Setup:
Fedora Linux 36
Java 17 (jdk/jre combo pack through the package manager)
Maven 17

I am attempting to use a minecraft world downloading tool, but the crypto that I am reasonably sure should be supported in Java 17, appears to be non-functional. I was hoping to get some pointers as to where to look.

In short I believe "AES/CFB8/NoPadding" is a valid encryption mode, but my setup seems to disagree.

I have the error I am getting in this code block:

java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/CFB8/NoPadding
    at java.base/javax.crypto.Cipher.getInstance(Cipher.java:571)
    at proxy.EncryptionManager.lambda$enableEncryption$15(EncryptionManager.java:366)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.enableEncryption(EncryptionManager.java:363)
    at proxy.EncryptionManager.lambda$sendReplacementEncryptionConfirmation$13(EncryptionManager.java:333)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.sendReplacementEncryptionConfirmation(EncryptionManager.java:314)
    at proxy.EncryptionManager.lambda$setClientEncryptionConfirmation$5(EncryptionManager.java:222)
    at proxy.EncryptionManager.attempt(EncryptionManager.java:109)
    at proxy.EncryptionManager.setClientEncryptionConfirmation(EncryptionManager.java:211)
    at packets.handler.ServerBoundLoginPacketHandler.lambda$new$1(ServerBoundLoginPacketHandler.java:50)
    at packets.handler.PacketHandler.handle(PacketHandler.java:57)
    at packets.DataReader.readPackets(DataReader.java:163)
    at packets.DataReader.pushData(DataReader.java:118)
    at proxy.ProxyServer.lambda$run$4(ProxyServer.java:86)
    at util.ExceptionHandling.attempt(ExceptionHandling.java:12)
    at proxy.ProxyServer.lambda$run$6(ProxyServer.java:83)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.security.NoSuchAlgorithmException: Unsupported mode CFB8
    at jdk.crypto.cryptoki/sun.security.pkcs11.P11Cipher.engineSetMode(P11Cipher.java:223)
    at java.base/javax.crypto.Cipher$Transform.setModePadding(Cipher.java:385)
    at java.base/javax.crypto.Cipher.getInstance(Cipher.java:564)
    ... 17 more
Encryption failure! Terminating.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霞映澄塘 2025-02-15 11:29:01

事实证明,FIPS模式是问题,当FIPS模式处于活动状态时,此处的加密方法显然是禁用的,因此无法启动,这导致了崩溃。

因此,这里的解决方案是关闭FIPS模式,或使用FIPS下支持的其他加密方法。由于我无法更改所使用的加密,因为这会引入其他问题,因此我不得不在本地机器上禁用FIP。

Turns out FIPS mode was the issue, the encryption method here is apparently disabled while FIPS mode is active, and therefore cannot start, which caused the crash.

So the solution here was to turn off FIPS mode, or use a different encryption method that is supported under FIPS. Since I couldn't change what encryption was being used, as that would introduce other problems, I had to disable FIPS on my local machine.

陌伤浅笑 2025-02-15 11:29:01

菲尔非常感谢你!我们为此挣扎了这么长时间
我们有:

Caused by: java.security.NoSuchAlgorithmException: Unsupported mode CTS

然后我在日志中注意到:

properties: com.redhat.fips unset, using default value of true
properties: FIPS mode detected

我设置了:

-Dcom.redhat.fips=false

它奏效了!

Phil thank you so much! We were struggling with this for so long
We had:

Caused by: java.security.NoSuchAlgorithmException: Unsupported mode CTS

Then I noticed in the log:

properties: com.redhat.fips unset, using default value of true
properties: FIPS mode detected

I set:

-Dcom.redhat.fips=false

and it worked!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文