緣起
在遇到AES和DES等分組加密演算法時,需要明文滿足一定的長度要求(分組的倍數),但是大多數情況下明文沒法滿足長度的苛刻要求,於是就要進行padding使傳入的內容滿足長度要求。
Nopadding
就是不填充,明文滿足分組演算法的長度要求,不需要再進行填充。
PKCS5/PKCS7
填充資料為填充位元組的長度,填充至符合塊大小的整數倍。eg.如果塊長度為16,原文資料長度9,則填充位元組數等於0x07,則需要填充7位0x07
ISO7816-4Padding
填充的第一個位元組為0x80,後面填充的均為0x00,填充至符合塊大小的整數倍。eg.如果塊長度為16,原文資料長度9,則填充為:0x80 0x00 0x00 0x00 0x00 0x00 0x00
ISO10126Padding
填充的最後一個位元組為填充位元組的長度,其他隨機,填充至符合塊大小的整數倍。eg.如果塊長度為16,原文資料長度為9,則填充為: random random random random random random 0x07
空格填充
顧名思義,即填充的每個位元組為空格對應的位元組數0x20
0x00填充
基本同上,填充的每個位元組均為0x00