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

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

Войти
Регистрация
Восстановить пароль
 
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61
#1

Ошибка RSA шифрования - Android

22.12.2015, 21:51. Просмотров 227. Ответов 0
Метки нет (Все метки)

Нужно зашифровать один PublicKey другим.
Код :

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
public byte[] rsaEncrypt(String key1, PublicKey key) {
    try {
 
      PublicKey key2 = getPublicKey(key1);
      Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", "BC");
      cipher.init(Cipher.ENCRYPT_MODE, key);
 
      return cipher.doFinal(key2.getEncoded());
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
 
  public PublicKey getPublicKey(String key) {
    String pubKeyStr = key;
    byte[] sigBytes = Base64.decode(pubKeyStr, Base64.DEFAULT);
    X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(sigBytes);
    KeyFactory keyFact = null;
    try {
      keyFact = KeyFactory.getInstance("RSA", "BC");
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (NoSuchProviderException e) {
      e.printStackTrace();
    }
    try {
      return keyFact.generatePublic(x509KeySpec);
    } catch (InvalidKeySpecException e) {
      e.printStackTrace();
    }
    return null;
  }

Получаю ошибку в строке
Java
1
cipher.doFinal(key2.getEncoded());
Данные при дебаге для понимания, что все происходит правильно

Java
1
2
3
key = {BCRSAPublicKey@830041814480} "RSA Public Key\n            modulus: bd4a10555be6a8160bcf3873674e2934abec7ad6ea460958d5d2ac5b205c34bd\n    public exponent: 10001\n"
key1 = {String@830053853352} "MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMclhC0r8SE49pR1CK40rbyQOXR4o2VUyDZ3ydxzAATv\nAgMBAAE=\n"
e = {ArrayIndexOutOfBoundsException@830039108928} "java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2015, 21:51     Ошибка RSA шифрования
Посмотрите здесь:

Android Есть ли для Аndroid класс реализации OpenSSL алгоритмом RSA ?
Android Куда вставлять ключ RSA
Android Ключ RSA
Открытый ключ RSA из Googl Play как его вставить в еклипс Android
Android Реализация алгоритмов шифрования
Ошибка "Method call expected" при шифровании RSA Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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