介紹加密模式和填充模式。
介紹兩種加密的模式:
ecbecb : electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,並對每個塊進行獨立加密
優點 : 可以並行處理資料
缺點 : 同樣的原文生成同樣的密文, 不能很好的保護資料
同時加密,原文是一樣的,加密出來的密文也是一樣的
cbccbc : cipher-block chaining, 密碼塊鏈結. 每個明文塊先與前乙個密文塊進行異或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊
優點 : 同樣的原文生成的密文不一樣
缺點 : 序列處理資料.
填充模式:
兩種填充模式,一種是nopadding,另一種是pkcs5padding
nopadding
不填充.
在des加密演算法下, 要求原文長度必須是8byte的整數倍
在aes加密演算法下, 要求原文長度必須是16byte的整數倍
pkcs5padding
資料塊的大小為8位, 不夠就補足
tips
預設情況下, 加密模式和填充模式為 : ecb/pkcs5padding
如果使用cbc模式, 在初始化cipher物件時, 需要增加引數, 初始化向量iv : ivparameterspec iv = new ivparameterspec(key.getbytes());
這裡介紹一下cbc 同樣的原文生成的密文不一樣這個就有點裝了,其實是這樣子的cbc 需要與前乙個密文塊進行異或後,但是明文開始沒有前乙個密文,所以呢,我們要有乙個iv。
也就是說同樣的key和原文,iv不同生成的密文不一樣。真正的原位生成的密文不一樣,是在訊息摘要中。
好了,那麼現在知道了注意的是加密的模式,選擇的是什麼,比如說ecb只需要key,cbc還需要iv,同時填充模式如果是nopadding 模式,那麼需要自己去填充,這個其實可以自己去設計演算法,這樣就不會那麼容易被破解。
說乙個個人的例子,公司伺服器補位的時候用的就是自己設計的東西補位的,當時伺服器告訴我是aes模式,我傳送到伺服器端,伺服器端解不出來,異常了,後來才知道要按照固定格式補位,伺服器會檢查是否是自己的方式補位的方式。
密碼學系列 異或加密
繼續更新本系列,介紹常用的異或加密。異或加密的原理非常簡單。原理 0 0 0 1 1 0 1 0 1 0 1 1就是1和1那麼得到的結果是0,0和0得到的結果是0,只有1和0或者0和1得到的結果才是1,所以叫做異或。很多時候我們不希望我們請求的時候進行明文顯示,而又不能像密碼一樣完全是不可逆加密,有...
《密碼學系列》 分組密碼
繼上一期的流密碼之後,我們就趁熱打鐵趕緊來看看分組密碼是怎麼一回事呢?在常用的一些密碼系統中,分組密碼在維護系統安全中仍然扮演著乙個重要角色,同流密碼一樣,分組密碼的使用也有許許多多需要我們注意的問題。分組密碼是什麼呢?分組分組顧名思義就是將明文訊息分成組來進行加密,也就是說,加密器每次只能處理特定...
密碼學系列 國密演算法
國密即國家密碼局認定的國產密碼演算法。主要有sm1,sm2,sm3,sm4,sm9。金鑰長度和分組長度均為128位。sm2 為非對稱加密,基於橢圓曲線密碼 ecc 的公鑰密碼演算法標準,提供數字簽名,金鑰交換,公鑰加密,用於替換rsa ecdsa ecdh等國際演算法 sm3 訊息摘要演算法,雜湊結...