我正在存储应用程序事件的事务日志,以允许稍后重播应用程序状态。这些数据需要即时加密(即在它到达磁盘之前)。我想使用.Net AES流编写器来实现它。
在文件损坏的情况下文件恢复方面有多'安全'(写入期间应用程序崩溃,位腐烂等)?
如果在写入期间终止流(即在应用程序崩溃情形中),我是否可以将文件截断为块大小的最大倍数并解密剩余数据而不会出现问题?
如果我尝试解密中途有位腐烂错误的文件流会怎样?这是一个可恢复的状态吗?
答案 0 :(得分:2)
这取决于您使用AES密码的操作模式。例如,在CBC模式中,如果在密文块中翻转一个比特,则整个块在解密时变为垃圾,并且在下一个块中,相应的解密明文比特被反转(这可能是也可能不是问题,取决于什么明文是)。之后流的其余部分不受影响。
关于这个主题的维基文章是一个很好的入门书。请参阅:Block cipher mode of operation