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

AES Android ошибка. javax.crypto.BadPaddingException - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android ViewPager и findViewById для ListView http://www.cyberforum.ru/android-dev/thread1702516.html
Добрый вечер. Столкнулся с такой проблемой: создал сначала ListView, переопределил ArrayAdapter, все отлично работало. Затем решил добавить ViewPager и уже в него запихнуть несколько одинаковых ListView, но с разным содержанием. Написал, ViewPager работает прекрасно, правда каждый ListView запихнул в отдельный xml файл и для каждого определил свой класс Fragment. И вот тут я столкнулся с...
Android Вытащить информацию из SQLite на новое Activity Здравствуйте! У меня есть 3 класса: В DB создаю базу данных, записи добавляются прямо из приложения. В MainActivity по данным из базы создаю ListView, заполняемый с помощью CursorLoader. По идее, в зависимости от выбранного объекта из ListView запускается новое activity, которое отображает данные из БД по этому объекту. За это должен отвечать третий класс - OneEvent. Реализовать открытие... http://www.cyberforum.ru/android-dev/thread1702496.html
Android Игра под машинку
Добрый день форум чане, мне нужно написать программу под ос андроид, с помощью которой я смогу управлять машинкой через Wi-Fi. Как мне это сделать так как я в программировании не силён, может кто подскажет, может кто поможет?
TextView или WebView Android
Добрый день, суть темы такого, есть у меня в базе обработанный html код - который включает в себя <p><br> <img src=""> <a href=""> ul li .... . Мне этот формат нужно вывести в приложение, вот теперь посоветуйте да стоит ли в приложении в просмотре текста использовать WebView и включить все эти html тэги или же использовать TextView у которого ограниченный круг html тэгов. Минусы WebView...
Android Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов http://www.cyberforum.ru/android-dev/thread1702023.html
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все получалось и разбирался как и что, а вот с матрицей что то не очень.. Задание звучит так: "Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов (леденцов или кофейных зерен или других) в виде матрицы 9х16. " не могу...
Android Несколько Socket подключений Вообщем, столкнулся с проблемой. Если подключить несколько устройств к сокет серверу, данные получаются только от того, кто был подключен первый. Код сервера:Runnable runnable = new Runnable() { public void run() { try { ServerSocket ss = new ServerSocket(1111); // создаем сокет сервера и привязываем его к вышеуказанному порту Socket socket = ss.accept(); // заставляем... подробнее

Показать сообщение отдельно
HanDi
 Аватар для HanDi
889 / 336 / 8
Регистрация: 11.02.2012
Сообщений: 1,502

AES Android ошибка. javax.crypto.BadPaddingException - Android

04.04.2016, 02:34. Просмотров 289. Ответов 0
Метки (Все метки)

javax.crypto.BadPaddingException: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
com.android.org.conscrypt.OpenSSLCipher.doFinalInternal(OpenSSLCipher.java:430)
com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:466)
javax.crypto.Cipher.doFinal(Cipher.java:1340)

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
package com.tereshkoff...AES;
 
import android.util.Base64;
 
import java.security.spec.KeySpec;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
 
public class AESEncrypter {
 
    private static final byte[] SALT = {
            (byte) 0xA9, (byte) 0x9B, (byte) 0xC8, (byte) 0x32,
            (byte) 0x56, (byte) 0x35, (byte) 0xE3, (byte) 0x03
    };
    private static final int ITERATION_COUNT = 65536;
    private static final int KEY_LENGTH = 256;
    private Cipher ecipher;
    private Cipher dcipher;
 
    public AESEncrypter(String passPhrase) throws Exception {
        SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
        KeySpec spec = new PBEKeySpec(passPhrase.toCharArray(), SALT, ITERATION_COUNT, KEY_LENGTH);
        SecretKey tmp = factory.generateSecret(spec);
        SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
 
        ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); // "AES/CBC/NoPadding"
        ecipher.init(Cipher.ENCRYPT_MODE, secret);
 
        dcipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        byte[] iv = ecipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();
        dcipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(iv));
    }
 
    public String encrypt(String encrypt) throws Exception {
        encrypt = encrypt.replace("\n", "");
 
        byte[] bytes = encrypt.getBytes("UTF8");
        byte[] encrypted = encrypt(bytes);
        return Base64.encodeToString(encrypted, Base64.DEFAULT);
    }
 
    public byte[] encrypt(byte[] plain) throws Exception {
        return ecipher.doFinal(plain);
    }
 
    public String decrypt(String encrypt) throws Exception {
        encrypt = encrypt.replace("\n", "");
        byte[] bytes = Base64.decode(encrypt, Base64.DEFAULT);
        byte[] decrypted = decrypt(bytes);
        return new String(decrypted, "UTF8");
    }
 
    public byte[] decrypt(byte[] encrypt) throws Exception {
        return dcipher.doFinal(encrypt);
    }
 
}
Any ideas? как говорицца..

Добавлено через 9 минут
Кстати, если просто тестировать отдельно, аля:

Java
1
2
3
4
5
6
            String message = "MESSAGE";
            String password = "PASSWORD";
 
            AESEncrypter encrypter = new AESEncrypter(password);
            String encrypted = encrypter.encrypt(message);
            String decrypted = encrypter.decrypt(encrypted);
То работает, что за приколы такие

Попытался засунуть в статику, мало ли.. вызываю в разных классах, ошибка не меняется..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru