Почему шифр в Java может шифровать данные любой длины с помощью AES, но не с помощью RSA? [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему шифр в Java может шифровать данные любой длины с помощью AES, но не с помощью RSA? [закрыто]

Сообщение Anonymous »

Этот вопрос не дублирует максимальное количество байтов для шифрования RSA, по сравнению с AES с точки зрения безопасности?, и это является связано с программированием.
Когда я использую шифр AES для шифрования 17-байтовых данных, данные будут рассматриваться как ( 16 + 1) байт, cipher.getBlockSize() возвращает 16, а cipher.getOutputSize(data.length) возвращает 32(16 -> 16, 1 -> 16).
Однако, когда я использую шифр RSA из Cipher.getInstance("RSA") для шифрования 246-байтовых данных, тот данные не рассматриваются как (245 + 1) байт, cipher.getBlockSize() возвращает 0(не 245), а cipher.getOutputSize(data.length ) возвращает 256(не 512: 245 -> 256, 1 -> 256).
Шифрование AES поддерживает шифрование. 17-bytes-data и не говорит: Данные не должны быть длиннее 16 байт, но RSA Cipher выдает: Данные не должны быть длиннее 245 байт.
Я разрабатываю утилиту для реализации функций шифрования. Как узнать, какой шифр может зашифровать данные, превышающие размер блока, за один вызов, а какие требуют ручной сегментации и нескольких вызовов шифра (особенно, когда getBlockSize() возвращает 0)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-with-rsa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»