AES256JNCryptor加密後的密文長度

從文檔看(http://jncryptor.googlecode.com/svn/trunk/javadoc/index.html),加密後的密文不但包括AES密文,還包括了前後一共66個字節的附加信息。

由於採用了256位AES加密,使用了CBC模式加PKCS #5補齊,所以AES的密文字節長度 = (明文長度 +1) / 16 * 16(即比明文長度大的最小的16的倍數)。

AES256JNCryptor返回的密文長度則是在此基礎上再加上66個字節。

返回的密文是二進制數據,無法直接顯示。如果需要進一步編碼爲可顯示字符串,則需進行BASE64編碼或者十六進制編碼。編碼後的數據長度會進一步增加(BASE64是增長爲4/3倍起的最小的4的倍數,十六進制編碼是增長爲2倍)。比如,對原文長度在32-47個字節之間的明文,經過AES256JNCryptor加密後的密文長度就是114個字節,再做一次BASE64編碼轉換成可顯示字符就成了152個字符。

原明文長度  -> AES密文長度 -> BASE64編碼長度
-------------------------------------------------------------------
 0-15 chars -> 82 bytes -> 112 chars
16-31 chars -> 98 bytes -> 132 chars
32-47 chars -> 114 bytes -> 152 chars
48-63 chars -> 130 bytes -> 176 chars
64-79 chars -> 146 bytes -> 196 chars
...
112-127 chars -> 194 bytes -> 260 chars
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章