Неверное исключение аргумента при расшифровке с помощью Bouncy Castle Crypto - PullRequest
1 голос
/ 22 сентября 2010

Может ли кто-нибудь направить меня в правильном направлении.Я не уверен, почему я получаю исключение недопустимого аргумента при расшифровке ключа.Это раньше работало.Вот трассировка стека.

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)

1 Ответ

0 голосов
/ 23 сентября 2010

Мне бы хотелось быть читателем разума, так как вы вообще не показываете код. Я сделаю следующий WAG:

Вы используете 8-символьную длинную строку для хранения жестко запрограммированного ключа и метод String.getBytes() для преобразования его в байтовый массив. Этот метод использует набор символов по умолчанию платформы, почти всегда большой нет-нет. На платформах, на которых вы тестировали, кодировка по умолчанию - это что-то вроде US-ASCII, которая всегда преобразует один символ в один байт. На платформе, с которой вы сталкиваетесь, по умолчанию используется кодировка UTF-16.

Это мое предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...