2013-10-20 58 views
2

我正在存儲應用程序事件的事務日誌以允許以後重播應用程序狀態。這些數據需要在運行中進行加密(即在它遇到磁盤之前)。我想使用.Net AES流編寫器來實現這一點。AES StreamWriter&文件損壞 - 恢復場景?

在文件損壞(應用程序在寫入過程中崩潰,位元腐爛等)的情況下,這與文件恢復有何關係?

如果流在寫入期間終止(即在應用程序崩潰的情況下),我可以將文件截斷爲塊大小的最大倍數並解密剩餘的數據而沒有問題嗎?

如果我嘗試解密文件流中途出現bit-rot錯誤,會發生什麼情況?這是可恢復的狀態嗎?

回答

2

這取決於您使用AES密碼的哪種操作模式。例如,在CBC模式下,如果在密文塊中翻轉一位,整個塊在解密時變成垃圾,並且在下一塊中解密的明文的相應位被反轉(這可能是也可能不是問題,這取決於什麼明文是)。之後的其餘流不受影響。

該主題的wiki文章是一個很好的入門書。參見:Block cipher mode of operation