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

Ошибка RSA шифрования - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как из activity_main_drawer открыть layout файлы? http://www.cyberforum.ru/android-dev/thread1622299.html
как из activity_main drawer открыть layout файлы?
Программирование Android Как перезаписать,создать путь к папке с кешом Здравствуйте.Решил здесь задать вопрос.У меня в андроиде была папка "obb" с кешем для игры.Игра функционировала,кеш писала в правильную папку "obb". В ходе манипуляций в программе FolderMoun... http://www.cyberforum.ru/android-dev/thread1622214.html
Программирование Android Замена Fragment в ViewPager
Привет, всем. Пользуясь ответом на stackoverflow написал такой же класс наследующийся от FragmentPagerAdapter, но теперь не знаю что написать в обработчике кнопки, чтобы фрагменты поменялись....
Сделать возможной корректную обработку 2 ситуаций Программирование Android
Добрый день возникла проблема в обработке двух разных ситуаций при создании калькулятора с унарными и бинарными операциями. В первой ситуации пользователь вводит что-то в поле ввода 1, затем вводит...
Программирование Android Рассылка сообщений группе устройств http://www.cyberforum.ru/android-dev/thread1621953.html
Добрый день! Необходимо посылать сообщение из сервера группе устройств. Пишу в Android Studio. Думал использовать Cloud to Device Messaging (C2DM), но нигде не нашел исчерпывающей информации....
Программирование Android NFC-метка вызывает системный сервис Приветствую, может кто сталкивался с проблемой с NFC-метками (для чтения используется NfcAdapter, с метки читается NDEF): - если чистую метку я записываю своей информацией, то в моем приложении она... подробнее

Показать сообщение отдельно
alexjj09
2 / 2 / 0
Регистрация: 04.05.2013
Сообщений: 61

Ошибка RSA шифрования - Программирование Android

22.12.2015, 21:51. Просмотров 271. Ответов 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"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru