Проблемы преобразования между выходом сериализации и BigInteger - PullRequest
1 голос
/ 15 ноября 2011

Я нахожусь в середине школьного проекта, где я должен продемонстрировать RSA.

Я сериализую объекты, используя довольно простой ObjectOutputStream, и возвращаю его как байтовый массив.

Метод RSA, который я использую, очень похож на метод , найденный здесь.

Проблема возникает при преобразовании между байтовым массивом из сериализации и BigIntegers в шифровании RSA.

Просмотр байтов показывает, что в байтовом массиве есть несколько отрицательных значений, что объясняет проблемное преобразование.

Как мне обойти это?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Как уже упоминалось в вопросе и ответе тангенса, я не смог выполнить шифрование обычного сериализованного объекта.Однако, используя класс XMLEncoder , я мог создать сериализацию XML без нечетных, не ascii-конвертируемых чисел.

Следующая проблема заключалась в том, что я не мог зашифровать что-либо более длинное, чем по модулючасть (или n ) криптосистемы RSA без разбивки открытого текста на подходящие части.

Надеюсь, это в конечном итоге поможет кому-то еще.

0 голосов
/ 15 ноября 2011

Вы должны использовать http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html#toByteArray() вместо сериализации BigInteger. Сериализация предоставит вам формат, подходящий только для десериализации, но не для дальнейших вычислений.

...