2013-10-20 62 views
2

我正在存储应用程序事件的事务日志以允许以后重播应用程序状态。这些数据需要在运行中进行加密(即在它遇到磁盘之前)。我想使用.Net AES流编写器来实现这一点。AES StreamWriter&文件损坏 - 恢复场景?

在文件损坏(应用程序在写入过程中崩溃,位元腐烂等)的情况下,这与文件恢复有何关系?

如果流在写入期间终止(即在应用程序崩溃的情况下),我可以将文件截断为块大小的最大倍数并解密剩余的数据而没有问题吗?

如果我尝试解密文件流中途出现bit-rot错误,会发生什么情况?这是可恢复的状态吗?

回答

2

这取决于您使用AES密码的哪种操作模式。例如,在CBC模式下,如果在密文块中翻转一位,整个块在解密时变成垃圾,并且在下一块中解密的明文的相应位被反转(这可能是也可能不是问题,这取决于什么明文是)。之后的其余流不受影响。

该主题的wiki文章是一个很好的入门书。参见:Block cipher mode of operation