What are some of the simplest ways to AES encrypt and decrypt a 16 byte array without the automatic padding? I have found solutions that use external libraries, but I want to avoid that if possible.
My current code is
SecretKeySpec skeySpec = new SecretKeySpec(getCryptoKeyByteArray(length=16)); // 128 bits
Cipher encryptor = Cipher.getInstance("AES");
encryptor.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = encryptor.doFinal(plain);
How can I prevent the padding? The plain
data is always fixed length and includes its own padding. How can I allow plain
to be 16 bytes without causing encrypted
to become 32 bytes?
See my comment. Sorry I probably should have taken a closer look the first time.
"AES"
to "AES/CBC/NoPadding"
decryptor.init(Cipher.DECRYPT_MODE, skeySpec);
to decryptor.init(Cipher.DECRYPT_MODE, skeySpec, encryptor.gerParameters());