arquivo grande de criptografia e descriptografia usando rsa em java
Estou usando o algoritmo RSA para criptografia e descriptografia de um arquivo com tamanho maior que o tamanho da chave rsa.
No código abaixo para criptografia, estou lendo o conteúdo do arquivo em blocos e convertendo em texto cifrado. O tamanho do bloco é 32 bytes.
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();
Na parte de descriptografia, a mesma descriptografia em bloco é feita no código em que mencionei o tamanho do bloco como 128 bytes
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);
}
O tamanho do arquivo de entrada é 81,3 kB e o arquivo contém
0 1 2 3 4.....29000
Depois que o arquivo é descriptografado, a saída contém alguns valores extras que não são relevantes. por que esses dados extras estão no resultado?