Kích thước khối của AES là 16 byte, vì vậy bạn sẽ cần
- kích thước đầu vào của bạn, được làm tròn đến bội số gần nhất của 16
- cộng với, nếu đầu vào đã là bội số của 16, một kích thước khối cho phần đệm PKCS # 5
- cộng với 16 byte cho IV
Lưu ý rằng điều này không nhất thiết phải áp dụng cho các chế độ mật mã khác.
Vì vậy, đối với 20 byte đầu vào, bạn sẽ cần tổng cộng 48 byte. Tuy nhiên , bạn cũng đang mã hóa kết quả base64, yêu cầu thêm ít nhất 33% dung lượng (tức là bạn nên lưu trữ các byte thô nếu bạn quan tâm đến dung lượng).
Bạn phải luôn nối trước khi mã hóa, nếu không, bạn thường lãng phí không gian với nhiều chuỗi byte đệm. Nếu đầu vào của bạn dài 20 byte, việc mã hóa bản mã 32 byte sẽ tạo ra 44 byte và mã hóa IV tạo ra 24 byte (cả hai đều cần đệm). Kết hợp trước khi mã hóa chỉ tạo ra 64 byte.
Việc ghép nối trước khi mã hóa cũng không yêu cầu dấu phân cách vì độ dài của IV đã được biết trước.
Các mật mã 1 AEAD, chẳng hạn như GCM, thường được ưu tiên hơn CBC, nhưng rõ ràng là yêu cầu nhiều không gian hơn để lưu trữ băm xác thực.