分组加密的填充
分組算法加解密是以定長(zhǎng)的數(shù)據(jù)塊分組為單位的。AES常用的分組長(zhǎng)度是128bit,即16個(gè)字節(jié),AES算法也有256bit的分組長(zhǎng)度模式,其他不同的分組算法分組長(zhǎng)度各不相同。明文數(shù)據(jù)的長(zhǎng)度不會(huì)總是恰好等于分組長(zhǎng)度的整數(shù)倍。為了調(diào)用分組算法加密,必須把最后一組明文填充到整個(gè)分組的長(zhǎng)度,解密時(shí)去掉填充的字節(jié)即可。一種填充方式是,記明文比一個(gè)分組缺少的字節(jié)數(shù)為N,在明文的后面追加N個(gè)值為N的字節(jié)即可。如果明文長(zhǎng)度恰好是分組長(zhǎng)度的整數(shù)倍,無需填充,則在明文末尾增加一個(gè)分組,每個(gè)字節(jié)的值都是分組長(zhǎng)度L。解密時(shí),按照相同的規(guī)則進(jìn)行去填充,將明文最后一個(gè)分組去掉重復(fù)的N個(gè)N即可,這種填充方式稱為PKCS5Padding。編程使用分組加密時(shí),填充方式是需要明確的一個(gè)參數(shù)。
填充示意圖
圖片來自http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html
轉(zhuǎn)載于:https://www.cnblogs.com/kodefun/p/4676543.html
總結(jié)
- 上一篇: Java模拟双色球彩票
- 下一篇: 思科网络CCNA的学习笔记-关于IP和子