2014年7月7日 星期一

使用 AES 加密後的資料長度

參考 [1-2],AES 演算法在加密時基本上不會變更檔案長度,所以原始檔案有多長,加密後就有多長。
不過因為 AES 是 block cipher,要加密的對象必須是 16 bytes 的倍數才能正常加密
因此演算法必須搭配 padding 的方法,而 padding 的方法就會影響加密後的長度。

從 [1] 的回應來看,如果 padding 的方法是使用 PKCS5 或 PKCS7 的話,加密後的長度如下:
cipherLen = (clearLen/16 + 1) * 16;

參考資料:
1、Size of data after AES encryption
2、How does PKCS#7 padding work with AES-256, CBC mode?

沒有留言: