Olá, pessoal.
Estou com um problema para criptografar dados usando Cipher.getInstance(“RSA/ECB/PKCS1Padding”)
Como minha chave é de 1024 bits, só aceita criptografar blocos de até 127 bytes. :roll: Alguém sabe trabalhar com blocos maiores sem ter que aumentar a chave ? Ou terei mesmo que criar uma técnica própria para isso ?
Thanks
[code]
// data -> String com os dados (maior do que 117 bytes)
// pub -> PublicKey (RSA)
Cipher encCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
encCipher.init(Cipher.ENCRYPT_MODE,pub);
ByteArrayOutputStream outBuf = new ByteArrayOutputStream();
CipherOutputStream cipherOUT = new CipherOutputStream( outBuf, encCipher );
int maxBlockSize = 117;
int totalSize = data.getBytes().length;
for( int i=0; i<totalSize; i += maxBlockSize ) {
int blockSize = maxBlockSize;
if( totalSize - i < blockSize ) {
blockSize = totalSize - i;
}
cipherOUT.write(data.getBytes(),i,blockSize);
}
cipherOUT.close();
[/code][/code]