gpt4 book ai didi

java - 使用 Bouncy CaSTLe Crypto 解密时出现非法参数异常

转载 作者:行者123 更新时间:2023-12-01 05:53:43 26 4
gpt4 key购买 nike

任何人都可以为我指出正确的方向吗?我不确定为什么在解密 key 时遇到非法参数异常。这以前曾有效。这是堆栈跟踪。

java.lang.IllegalArgumentException: DES key too long - should be 8 bytes
at org.bouncycastle.crypto.engines.DESEngine.init(Unknown Source)
at org.bouncycastle.crypto.modes.CBCBlockCipher.init(Unknown Source)
at org.bouncycastle.crypto.BufferedBlockCipher.init(Unknown Source)
at com.project.util.Encryptor.decrypt(Encryptor.java:90)
at com.project.util.Encryptor.decryptString(Encryptor.java:103)
at com.project.util.EncryptionUtil.getdecryptedlicense(EncryptionUtil.java:145)
at com.project.util.EncryptionUtil.<clinit>(EncryptionUtil.java:52)
at com.project.ebiz.security.jaas.SQLLoginModule.login(SQLLoginModule.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:579)

最佳答案

我必须成为一个读心者,因为你根本没有显示任何代码。我将制作以下 WAG:

您正在使用 8 长字符串来存储硬编码 key ,并使用 String.getBytes() 方法将其转换为字节数组。此方法使用平台默认字符集,这几乎总是一个大禁忌。在您测试过的平台上,默认字符集类似于 US-ASCII,它始终将一个字符转换为一个字节。在您遇到问题的平台上,默认字符集是 UTF-16 变体。

这是我的猜测。

关于java - 使用 Bouncy CaSTLe Crypto 解密时出现非法参数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com