簡體   English   中英

有彈性的城堡PKCS7填充

[英]Bouncy Castle PKCS7 padding

我需要幫助來找到Bouncy Castle Java框架中此表達式的實際填充值。 Kinda不確定這些值。

encrypt(bytes, iv, secret, "AES/CBC/PKCS7Padding")

使用的填充字節與填充字節的數量相同。 因此,如果需要填充11個字節,則該填充由字節0x0b的11個副本組成。 始終應用填充,因此,如果字節數已經是16的倍數,則使用16字節的填充,在這種情況下,填充字節為0x10。

這種填充方案具有很好的功能,即在解密后,您可以檢查填充的純文本的最后一個字節,以確定總共有多少個填充字節。

請注意,PKCS7填充不是Java特定的標准,而是一種獨立於語言的非常常見的填充方案。

如果原始數據是N個字節的整數倍,那么將添加一個額外的字節塊,其值為N。 這是必需的,以便解密算法可以確定地確定最后一個塊的最后一個字節是填充字節,該填充字節指示添加的填充字節數或明文消息的一部分。 考慮一個純文本消息,該消息是N字節的整數倍,而純文本的最后一個字節為01。如果沒有其他信息,解密算法將無法確定最后一個字節是純文本字節還是填充字節。 但是,通過在01個明文字節之后添加N個字節,每個字節的值N,解密算法可以始終將最后一個字節視為填充字節,並從密文末尾剝離適當數量的填充字節; 表示要基於最后一個字節的值剝離的字節數。

PKCS7填充

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM