Verschlüsselung und Entschlüsselung großer Dateien mit RSA in Java
Ich verwende den RSA-Algorithmus zum Ver- und Entschlüsseln einer Datei mit einer Größe von mehr als dem RSA-Schlüssel.
In dem unten stehenden Code für die Verschlüsselung lese ich Dateiinhalte blockweise und konvertiere sie in Chiffretext. Die Blockgröße beträgt 32 Byte.
FileInputStream fin1 = new FileInputStream(genfile);
FileOutputStream fout = new FileOutputStream(seedcipher);
byte[] block = new byte[32];
int i;
while ((i = fin1.read(block)) != -1)
{
byte[] inputfile= cipher.doFinal(block);
fout.write(inputfile);
}
fin1.close();
Am Entschlüsselungsteil wird die gleiche blockweise Entschlüsselung in dem Code durchgeführt, in dem ich die Blockgröße als 128 Bytes erwähnt habe
FileInputStream fin1 = new FileInputStream(encryptedfile);
FileOutputStream fout = new FileOutputStream(seedcipher);
DataInputStream dos =new DataInputStream(fin1);
DataOutputStream dosnew =new DataOutputStream(fout);
byte[] block = new byte[128];
int i;
while ((i = fin1.read(block)) != -1)
{
byte[] inputfile= cipher.doFinal(block);
fout.write(inputfile);
}
Input Dateigröße ist 81,3 kB und Datei enthält
0 1 2 3 4.....29000
Nachdem die Datei entschlüsselt wurde, enthält die Ausgabe einige zusätzliche Werte, die nicht relevant sind. Warum sind diese zusätzlichen Daten im Ergebnis?