Rozmiar tekstu szyfrowanego Java AES
Używam bardzo standardowego sposobu szyfrowania / deszyfrowania Java AES.
byte[] key = hexStringToByteArray("C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF");
byte[] message = hexStringToByteArray("01A0A1A2A3A4A5A6A703020100060001");
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
// Instantiate the cipher
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] encrypted = cipher.doFinal(message);
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] original = cipher.doFinal(encrypted);
Jak widać, używam 128-bitowego klucza i 128-bitowego komunikatu. Zawsze otrzymuję oczekiwany wynik, jednak zaszyfrowany wynik jest zawsze 256-bitowy. Drugie 128 bitów jest zawsze takie samo. Poza obcięciem wyniku, w jaki sposób mogę zapewnić, że szyfr zwraca tylko pierwsze 128 bitów, bez zmiany pierwszych 128 bitów? Czuję, że mam tu trochę zamieszania z definicją rozmiaru bloku.