Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
KODAGEN
3 / 1 / 1
Регистрация: 22.11.2009
Сообщений: 84
#1

Дешифрование файлов: "last block incomplete in decryption" - Программирование Android

01.12.2012, 14:11. Просмотров 560. Ответов 0
Метки нет (Все метки)

Всем привет.

есть код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
         byte[] key_byte = { 11, 12, 12, 12, 12, 12,12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11};
         byte[] test_vector = {11,12,12,12,12,12,12,11};
         try {
            String anketa_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ANKETS/10.encr";
            
            String algorithm = "DESede";
            String transformation = "DESede/CBC/PKCS5Padding";
            DESedeKeySpec keySpec = new DESedeKeySpec(key_byte);
            IvParameterSpec iv = new IvParameterSpec(test_vector);
            
            SecretKey key = SecretKeyFactory.getInstance(algorithm).generateSecret(keySpec);
 
            File file = new File(anketa_path);
            InputStream is = new FileInputStream(file);
            long length = file.length();
            byte[] bytes = new byte[(int)length];
            
            int offset = 0;
            int numRead = 0;
            while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
                offset += numRead;
            }
            
            Cipher cipherDecription = Cipher.getInstance("DESede");
            cipherDecription.init(Cipher.DECRYPT_MODE, key,iv);
            
            alertDialog.setMessage(Integer.toString(bytes.length));
            
            byte[]  decrypted = cipherDecription.doFinal(bytes);
            
            
    //      File os = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/ANKETS/encrypted.xml");
    //      String str_encr = new String(decrypted);
            PrintWriter pr = new PrintWriter(Environment.getExternalStorageDirectory().getAbsolutePath() + "/ANKETS/encrypted.xml");
    ///     pr.write(str_encr);
            
            
//          
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("0 : " + e.getMessage());
        }
            catch (NoSuchPaddingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("1 : " + e.getMessage());
        }
         catch (InvalidKeyException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("2 : " + e.getMessage());
        }
         catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("3 : " + e.getMessage());
        }
         catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("4 : " + e.getMessage());
        }
         catch (InvalidAlgorithmParameterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("5 : " + e.getMessage());
        }
         catch (InvalidKeySpecException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("8 : " + e.getMessage());
        }
         catch (IllegalBlockSizeException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            alertDialog.setMessage("9 : " + e.getMessage());
        }
         catch (BadPaddingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        //  alertDialog.setMessage("10 : " + e.getMessage());
        }
         alertDialog.show();
И на участке

Java
1
byte[]  decrypted = cipherDecription.doFinal(bytes);
У меня вылетает ексепшин

last block incomplete in decryption


В чем я ошибся????

Файл шифроваля на C#, но и разшифровывается им нормально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дешифрование файлов: "last block incomplete in decryption" (Программирование Android):

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая есть таблицы - &quot;списки_жанров&quot;, &quot;фильмы&quot;, &quot;режиссеры&quot; мне...

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов - Программирование Android
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все...

Выбор платформы разработки "1С Мобильная платформа" или "Android Studio" - Программирование Android
Всем, здравствуйте! Есть задача по разработке клиента для терминала сбора данных. Для использования его c WMS. После долгих раздумий было...

При эмулировании вместо надписи "Hello world" отображается "android" - Программирование Android
Привет форумчане! Я только-только начинал программировать на андроиде. Поставил среду, все настроил как на google.developers . Когда...

Как прикрутить "свой браузер" к странице - "фрагмент" - Программирование Android
здравствуйте. все, уже голову сломал. не соображаю совсем. не получается прикрутить код браузера к странице fragments.выводиться должно на-...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 14:11
Привет! Вот еще темы с ответами:

Как "превратить" string "6.971245e-001" во float? - Программирование Android
Число конечно пример

Что означают конструкции "finally" и "throw new"? - Программирование Android
Я с Java уже давно, но с этим столкнулся в первый раз. Объясните, пожалуйста, что означают вот это &quot;finally&quot; и &quot;throw new&quot;. Вот пример...

блокирование кнопок "Home" "Back" - Программирование Android
Доброго времени. собственно вопрос сл. можно ли заблокировать или каким либо образом отключить возможность нажатия пользования кнопок...

Ошибка "Gradle"MyApplication" projectrefresh failed - Программирование Android
Всем доброго вечера. Только начинаю писать под андроид, и на одном из первых этапов возникла такая ошибка. Создал проект (эмулятор не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru