Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
KODAGEN
3 / 1 / 1
Регистрация: 22.11.2009
Сообщений: 87
#1

Дешифрование файлов: "last block incomplete in decryption"

01.12.2012, 14:11. Просмотров 634. Ответов 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#, но и разшифровывается им нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 14:11
Ответы с готовыми решениями:

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

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log"
Unknown method 'e' of 'org.apache.commons.logging.Log' package...

Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 14:11

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

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

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


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

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

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