Warum kann der Cipher in Java Daten beliebiger Länge mit AES verschlüsseln, aber nicht mit RSA? [geschlossen]Java

Java-Forum
Guest
 Warum kann der Cipher in Java Daten beliebiger Länge mit AES verschlüsseln, aber nicht mit RSA? [geschlossen]

Post by Guest »

Diese Frage ist nicht ein Duplikat der maximal zu verschlüsselnden RSA-Bytes, im Vergleich zu AES in Bezug auf die Sicherheit?, und sie ist >programmierungsbezogen.
Wenn ich AES-Verschlüsselung verwende, um 17-Byte-Daten zu verschlüsseln, werden die Daten als ( 16 + 1) Bytes, cipher.getBlockSize() gibt 16 zurück und cipher.getOutputSize(data.length) gibt 32(16 - > 16, 1 -> 16).
Allerdings, wenn ich zum Verschlüsseln eine RSA-Verschlüsselung aus Cipher.getInstance("RSA") verwende 246-bytes-data, die Daten werden nicht als (245 + 1) Bytes betrachtet, cipher.getBlockSize() gibt 0(nicht 245) und cipher.getOutputSize(data.length) gibt 256 zurück (nicht 512: 245 -> 256, 1 -> 256).
AES Cipher unterstützt die Verschlüsselung von 17-Byte-Daten und sagt nicht: Daten dürfen nicht länger als 16 Bytes sein, aber RSA Cipher gibt Folgendes aus: Daten dürfen nicht sein länger als 245 Bytes.
Ich entwickle ein Dienstprogramm, um die Cipher-Funktionalität zu umschließen. Wie kann ich herausfinden, welcher Cipher Daten, die die Blockgröße überschreiten, in einem Aufruf verschlüsseln kann und welche Cipher eine manuelle Segmentierung und mehrere Aufrufe von Cipher erfordern (insbesondere, wenn getBlockSize() 0 zurückgibt)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post