1

誰でも私を正しい方向に向けることができますか。キーの復号化中に不正な引数の例外が発生する理由がわかりません。これは以前は機能していました。ここにスタックトレースがあります。

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)
4

1 に答える 1

0

コードをまったく表示しないので、私はマインドリーダーである必要があります。次のWAGを作成します。

ハードコードされたキーを格納するために8文字の長い文字列を使用し、String.getBytes()メソッドを使用してそれをバイト配列に変換しています。このメソッドは、プラットフォームのデフォルトの文字セットを使用します。ほとんどの場合、大きなノーノーです。テストしたプラットフォームでは、デフォルトの文字セットはUS-ASCIIのようなもので、常に1文字を1バイトに変換します。問題が発生しているプラ​​ットフォームでは、デフォルトの文字セットはUTF-16バリアントです。

それは私の推測です。

于 2010-09-22T22:56:10.923 に答える