Добрый день. Возникла проблема, и я не могу понять, с чем это связано. У меня есть зашифрованная строка, где первые 4 байта имеют размер. Как правильно расшифровать эту строку?
строка для расшифровки:
0x00, 0x00, 0x00, 0x28, 0x70, 0x76, 0x65,
0x25, (байт) 0xe0,0x2c, 0x6e, 0x5f, 0x36,0x69,0x7, (байт) 0xb8, (байт) 0xDE, 0x30,0x6d, 0x56, (байт) 0xa3,0x53,0x6d, (байт) 0x8d, 0x1c , 0x7e, (байт) 0xed
Вот мой код:
byte[] keyBytes = new byte[]{0x00, 0x00, 0x00, 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00};
byte[] SourceByte = new byte[]{0x70, 0x76, 0x65, 0x25,(byte)0xe0,0x2c,0x6e,0x5f,0x36,0x69,0x7,(byte)0xb8,(byte)0xde,0x30,0x6d,0x56,(byte)0xa3,0x53,0x6d,(byte)0x8d,0x1c,0x7e,(byte)0xed};
byte[] ivBytes = new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
SecretKeySpec pKey = new SecretKeySpec(keyBytes, "DES");
IvParameterSpec ivectorSpecv = new IvParameterSpec(ivBytes);
Cipher c = Cipher.getInstance("DES/CBC/PKCS7Padding", "BC");
дешифрование:
int len = 40;
c.init(Cipher.DECRYPT_MODE, pKey, ivectorSpecv);
byte[] plainText = new byte[c.getOutputSize(len)];
int ptLength = c.update(SourceByte, 0, len, plainText, 0);
ptLength += c.doFinal(plainText, ptLength);
System.out.println("plain : " + new String(plainText) + " bytes: " + ptLength);
Ошибка:
ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
Процесс: com.example.jone1.navigation_drawer, PID: 7240
java.lang.RuntimeException: Невозможно начать деятельность
ComponentInfo {com.example.jone1.navigation_drawer / com.example.omen.serverforcofe.MainActivity}:
java.lang.IllegalArgumentException: неверные аргументы
в
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2665)
в
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2726)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
в
android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1477)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:154)
на android.app.ActivityThread.main (ActivityThread.java:6119)
в java.lang.reflect.Method.invoke (родной метод)
в
com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:886)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)
Вызвано: java.lang.IllegalArgumentException: неверные аргументы
at javax.crypto.Cipher.update (Cipher.java:1829)
в
com.example.omen.serverforcofe.MainActivity.onCreate (MainActivity.java:128)
на android.app.Activity.performCreate (Activity.java:6679)
в
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1118)
в
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2618)
в
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2726)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
в
android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1477)на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:154)
на android.app.ActivityThread.main (ActivityThread.java:6119)
в java.lang.reflect.Method.invoke (родной метод)
в
com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:886)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776) 03-19
09: 24: 41.970 1613-2258 / system_process W / ActivityManager: Force
отделочная деятельность
com.example.jone1.navigation_drawer / com.example.omen.serverforcofe.MainActivity
03-19 09: 24: 42.181 2316-2327 / com.google.android.gms I / art: Background
Развертывание липкой параллельной метки GC освободил 12310 (933KB) объектов AllocSpace,
9 (180 КБ) объектов LOS, 23% свободного, 6 МБ / 9 МБ, приостановлено 9.592 мс
194,520мс 03-19 09: 24: 42,220 1295-1346 /? D / gralloc_ranchu: gralloc_alloc: формат 1 и использование 0x900 подразумевает создание цвета хоста
буфер 03-19 09: 24: 42.232 1613-3805 / system_process I / OpenGLRenderer:
Инициализированный EGL, версия 1.4 03-19 09: 24: 42.233
1613-3805 / system_process D / OpenGLRenderer: поведение свопинга 1 03-19
09: 24: 42.234 1613-3805 / system_process W / OpenGLRenderer: Не удалось
выберите конфигурацию с помощью EGL_SWAP_BEHAVIOR_PRESERVED, повторив попытку без ...