加密模式
ECB
Electronic codebook, 電子密碼本. 需要加密的消息按照塊密碼的塊大小被分爲數個塊,並對每個塊進行獨立加密
優點 : 可以並行處理數據
缺點 : 同樣的原文生成同樣的密文, 不能很好的保護數據
同時加密,原文是一樣的,加密出來的密文也是一樣的
CBC
Cipher-block chaining, 密碼塊鏈接. 每個明文塊先與前一個密文塊進行異或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊
優點 : 同樣的原文生成的密文不一樣
缺點 : 串行處理數據.
填充模式
當需要按塊處理的數據, 數據長度不符合塊處理需求時, 按照一定的方法填充滿塊長的規則
NoPadding
不填充.
在DES加密算法下, 要求原文長度必須是8byte的整數倍
在AES加密算法下, 要求原文長度必須是16byte的整數倍
PKCS5Padding
數據塊的大小爲8位, 不夠就補足
注意
默認情況下, 加密模式和填充模式爲 : ECB/PKCS5Padding
如果使用CBC模式, 在初始化Cipher對象時, 需要增加參數, 初始化向量IV : IvParameterSpec iv = new IvParameterSpec(key.getBytes());