Padding
是什麼防止填充標準導致數據失去?
在這裡,不同的字節填充標準被列為 ANSI X.923、ISO 101.26、PKCS7、ISO/IEC 7816-4 和零填充。所有這些似乎都將填充應用於最後一個字節塊。奇數很少,但如果實際數據是塊大小的整數乘積並且最後一個字節與填充方案衝突,會發生什麼情況。
例如,對於 PKCS7,讓最後 8 個字節為
FF FF FF FF FF FF FF 01
01 實際上可能是原始數據或填充。我們怎麼知道呢?我們如何避免數據失去?(這似乎微不足道,但圖像格式可能會損壞,因為原始數據大小會發生變化。)
即使明文是塊大小的乘積,也總是添加填充。這樣,算法會查找最後一個字節,並可以安全地將其解釋為填充數據。如果與塊大小對齊,則添加一個完整塊僅用於填充目的。
因此,如果您的範例顯示 8 個字節的數據並且您使用的是 64 位塊密碼,
08
則將添加一個 8 塊作為填充。