![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| 4epT |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Доброе утро. Делаю небольшой класс для шифрования и расшифрование на алгоритме RSA. Использую стандартные методы Java.
Вот так шифруется:
Вот так расшифровывается:
Размер ключей 2048 байт. Генерировались при помощи KeyPairGenerator:
Проблема в том, что на некоторых текстах вылетает с таким эксепшеном:
В данном примере шифруется текст: "Рррфывф" Вылетает в момент расшифровки. В чем может быть ошибка ? |
||||||||
|
|||||||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Использовать строку в качестве контейнера байтов таким образом
- плохая идея. При преобразовании байтов в символы есть вероятность потерять информацию, равно как и при обратном процессе, ведь далеко не все байтовые последовательности могут иметь смысл в выбранной кодировке. Лучше закодируйте массив байтов на выходе при помощи B64, так вы получите адекватное строковое представление, но при этом кодирование будет однозначным и ничего не будет потеряно. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Спасибо большое, в который раз натыкаюсь на эту ошибку (
Можно еще один вопрос ?) я когда передаю в метод rsaEncrypt строку, как "правильно" из нее получить массив байт ? я делаю так:
использовать B64 decoder как я понимаю не правильно, так как текст у нас еще не был уложен в B64 ... P.s. "правильно" - это я имею ввиду что бы по пути шифрования и дешифрования не потерять какие нибудь символы. |
|||
|
||||
| jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Нужно использовать кодировку, которая содержит адексатное представление для всех возможных в Java-строке символов. 1251 для это не очень подходит, нужен юникод:
-------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
| 4epT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Заменил на utf8, потестил ... все работает)
Спасибо большое! |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |