Я хотел бы знать размер данных после AES-шифрования, чтобы я мог избежать буферизации моих данных после AES (на диске или в памяти), главным образом, для определения размера.
Я использую 128-битные AES и javax.crypto.Cipher
и javax.crypto.CipherInputStream
для шифрования.
Несколько тестов, выполненных с различными размерами ввода, показывают, что размер пост-шифрования, рассчитанный как указано ниже, правильный:
long size = input_Size_In_Bytes;
long post_AES_Size = size + (16 - (size % 16));
Но я не уверен, применима ли эта формула для всех возможных размеров ввода.
Есть ли способ вычислить размер данных после применения AES-шифрования - заранее, не забирая зашифрованные данные (на диске или в памяти), чтобы узнать его размер после шифрования?