AES是對稱加密算法
關鍵詞:
1、分組密碼體制:將明文拆分爲多段,每段爲128位的16字節,最後一段不足16字節使用padding填充;加密過程中對每一段分別進行加密後組裝;
2、padding:用來把不滿16個字節的分組數據填滿16個字節用的,它有三種模式PKCS5、PKCS7和NOPADDING。
PKCS5:缺少幾個字節就在末尾添加幾個字節的幾,例如最後一段有10個字節還缺少6個字節,那麼最後的六個字節都將填充上6;
PKCS7:缺少幾個字節就填充幾個字節的0;
NOPADDING:保證末尾一定是16個字節,不需要填充。
對於PKCS5和PKCS7最後一段剛好16字節不需要填充時,分別需要再在末尾添加16個字節的16(PKSE5)、16個字節的0(PKSE7).
3、初始向量IV:的作用是使加密更安全,初始向量IV是隨機生成的,在第一段明文加密過程中使用,從第二段開始的每一段的向量IV都是前一段明文加密得到的密文。
4、密鑰:AES要求密鑰的長度可以是128位16個字節、192位或者256位,位數越高,加密強度越大,效率越低。
5、四種加密模式:ECB(電子密碼本模式)、CBC(密碼分組鏈接模式)、CFB、OFB
(1)ECB:相同明文塊加密結果一致,導致容易被破解。
(2)CBC:使用初始向量IV,這樣可保證即使同樣的明文,加密後的密文也不見得一致。
這四種模式中ECB相對不夠安全,其餘幾種差別並不明顯。