AES CBC方式下補齊方式

2021-07-23 21:33:50 字數 532 閱讀 6799

aes一般是16個位元組為一塊,然後對這一整塊進行加密,如果輸入的字串不夠16個位元組,就需要補位,當然如果你使用nopadding就木辦法了

填充方式需要比較下 才更加清楚:

pkcs5padding:填充的原則是,如果長度少於16個位元組,需要補滿16個位元組,補(16-len)個(16-len)例如:
123這個節符串是3個位元組,16-3= 13,補滿後如:123+13個十進位制的13,
如果字串長度正好是16位元組,則需要再補16個位元組的十進位制的16。

如果採用nopadding時可以解密資料之前,直接用資料長度對16進行取餘看是否為0,不為零就是錯的

而對於其他的像上面的填充方式而言 可以檢測最後乙個位元組的資料值是否在(0,16】之間的乙個整數值,不是的話肯定有錯

下面給出鏈結裡的的php直接使用零填充的方式也是存在

借鑑:

windows下python自動補齊

windows下使用python2.7,控制台下無法無法自動補齊 參照1.安裝pyreadline pip install pyreadline 2.啟用tab鍵自動補齊 try import readline except importerror import pyreadline as read...

Linux下程序通訊方式

1 管道 pipe 管道可用於具有親緣關係程序間的通訊,答應乙個程序和另乙個與它有共同祖先的程序之間進行通訊。2 命名管道 named pipe 命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還答應無親緣關係程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道通過命令mkf...

CentOS下重灌Mysql yum方式

用rpm e 命令就能徹底刪除已安裝的mysql,必須刪除3個包 mysql server,mysql,mysql libs,但是最後的lib包被perl dbd mysql依賴,所以perl dbd mysql也要先被刪除 rpm e mysql server rpm e perl dbd mys...