RSA не является потоковым шифром. Зашифрованный результат всегда имеет размер (биты) модуля - в вашем случае 3233.
Число 3233 требует 12 битов, однако один байт / символ обеспечивает только 8 битов. Следовательно, вы не можете отправить упакованный зашифрованный RSA текст в один байт. Вам нужно как минимум 2 байта.
Если вы можете упаковать целое число в символ, зависит от вашего определения символа:
char = (для печати) ASCII символ
A печатный символ ASCII обычно имеет 7 бит. Вы не можете хранить 12 бит в 7 битах.
char = byte
Стандартный символ эквивалентен байту и позволяет хранить 8 бит. Вы не можете хранить 12 бит в 8 битах.
char = Java UTF-16 char
Учитывая, что Java char
является символом UTF-16, вы можете быть возможность сохранять целое число как один символ, однако хранение двоичных данных в Java UTF-16 char
является очень грязным и хакерским решением sh. Я настоятельно рекомендую не реализовывать это! Двоичные данные не следует сохранять в символе (массиве) без надлежащего преобразования и кодирования (например, base64 шестнадцатеричного кодирования).