Размерът на блока на AES е 16 байта, така че ще ви трябва
- размера на вашия вход, закръглен до най-близкото кратно на 16
- плюс това, ако входът вече е кратен на 16, един размер на блока за подложката PKCS#5
- плюс 16 байта за IV
Имайте предвид, че това не се отнася непременно за други режими на шифър.
Така че за 20 байта вход ще ви трябват общо 48 байта. Въпреки това , вие също кодирате base64 резултата, което изисква поне 33% повече място (т.е. трябва да съхранявате необработените байтове, ако ви е грижа за пространството).
Винаги трябва да свързвате преди кодиране, в противен случай често губите място с множество последователности от байтове за допълване. Ако вашият вход е с дължина 20 байта, кодирането на 32-байтовия шифрован текст сам по себе си произвежда 44 байта, а кодирането на IV произвежда 24 байта (и двете се нуждаят от подпълване). Свързването преди кодиране произвежда само 64 байта.
Конкатенацията преди кодиране също не изисква разделител, тъй като дължината на IV е известна.
1 Шифровите AEAD, като GCM, обикновено са за предпочитане пред CBC, но очевидно изискват повече място за съхраняване на хеша за удостоверяване.