java 加密模式

2021-06-03 07:22:32 字數 1062 閱讀 3242

常見加密模式介紹:

ecb(electronic code book:電碼本)

ecb是最簡單的模式,同樣的明文分組總是加密成相同的密文分組。這對於傳送單一的塊資料來說是非常好的,如金鑰。但對執行乙個加密的資訊流來說不是很好,因為如果相同的明文多次傳送以後,同樣的密文也會被多次傳送。

ecb最大的弱點是對每乙個塊用相同的方式進行加密。如果我們的金鑰或者資料不斷發生變化,ecb是完全安全的。但是如果類似的塊經過同樣的金鑰加密發出以後,攻擊者可能獲得一些我們並不想讓別人知道的資訊。

cbc(cipher block chaining:密碼分組鏈結)

cbc模式改變了加密方式,同樣的明文分組不一定加密或解密同樣的密文塊,因此解決了ecb存在的主要問題。cbc使用前一分組的資訊加密當前分組。因此和ecb模式大不相同。這個方法依然存在問題,那就是相同的資訊仍然加密成相同的密文,因為所有的分組是同時變成密文分組的。為了解決這個問題,我們引入乙個initialization vector(初始化向量),也就是前不久有人問到的iv問題。iv僅僅是乙個初始化加密程式的隨機數。它無需秘密儲存,但隊每乙個資訊來說它都是不同的,通過這個方式,即使有兩條相同的資訊,只要他們有不同的iv,那麼他們加密後的密文也是不同的。從這個意義上來說,初始化向量無疑就和口令加密過程中使用的鹽值是一樣的。

cbc很適合文字傳輸,但它每一次都需要傳送乙個完整的資料塊,一般選8個字元。

cfb(cipher feedback:密碼反饋)

cfb的工作方式與cbc類似,但它可以執行更小的資料塊,典型的有8位,這非常適合加密像聊天對話這樣的資訊,因為每次可以傳送單一的位元組資料塊。

和cbc一樣,cfb也需要乙個iv,且相同及鑰傳送的每條資訊的iv都必須是唯一的。

ofb(output feedback:輸出反饋)

ofb除了在傳輸中能給資料提供更好的保護,防止資料丟失外,其他和cfb類似。密文中一位出錯,也只造成明文中的一位出錯,其他的方式會造成整個塊丟失。

了解Java加密

可逆加密 1.對稱加密 加密金鑰和解密的金鑰一樣 des 金鑰長度 56位 3des 金鑰長度 168位 aes 金鑰長度 128位 192位 256位 2.非對稱加密 加密金鑰和解密的金鑰不一樣 公鑰 和 私鑰 加密演算法 公鑰加密 私鑰解密 簽名演算法 私鑰簽名 公鑰驗籤 rsa 1024 rs...

RSA加密模式

1,把dict轉換成jsonstr 2,隨機生成乙個8位的字串 3,用這個8位的字串和後台提供的public key.pem 公鑰 加密 pragma mark requestargs 做加密 nsdictionary dataentray 以上是rsa的加密 rsa是非對稱加密 rsa加密後得到乙...

JAVA 解析加密ZIP

2010 03 10 最近做專案遇到了乙個問題,需要將客戶端到處的加密zip壓縮包直接匯入到系統中。在網上查了下關於zip解密的問題,發現了winzipaes這個開源專案http code.google.com p winzipaes 這個專案需要依賴bcprov jdk14 145.jar這個開源...