天天看點

檔案AES加解密

問題: 使用 aes-128-cfb 加密檔案後後,解密失敗

過程: 發現加密和解密時,讀檔案時,讀取的資料量不一樣,加密時加密的資料是 1024個位元組,解密時則是 10240個位元組,原本以為 相同的明文塊(128位)加密後,會生成 相同的密文塊,就做了如下實驗: 明文 11111111111111112222222222222222 1111111111111111 密文 95 168 189 74 63 60 187 59 29 81 211 247 106 36 38 181 169 229 154 3 71 104 200 29 166 46 51 86 9 108 154 239 217 49 110 132 135 55 177 207 10 107 182 215 115 255 243 57 通過觀察發現: 前16個1加密後的密文為 95 168 189 74 63 60 187 59 29 81 211 247 106 36 38 181 後16個1加密後的密文為 217 49 110 132 135 55 177 207 10 107 182 215 115 255 243 57

結論: 相同明文塊(128位)經過加密後,生成了不同的密文。

CFB 加密模式

檔案AES加解密

如上圖所示,在CFB加密模式,密文塊0作為加密第二個明文塊1過程中的IV,是以第一個明文塊1和第二個明文塊1加密後産生了不同的密文快。 是以解密檔案的時候讀取的字元數量和加密時候讀取的字元數量不一緻會導緻解密失敗。 AES中的CFB加密模式加密的密文和明文等長。