2

我正在存储应用程序事件的事务日志,以便以后重播应用程序状态。这些数据需要即时加密(即在它到达磁盘之前)。我想使用 .Net AES 流编写器来实现这一点。

在文件损坏的情况下(应用程序在写入期间崩溃、位腐烂等),这对于文件恢复有多“安全”?

如果流在写入期间终止(即在应用程序崩溃场景中),我可以将文件截断为块大小的最大倍数并毫无问题地解密剩余数据吗?

如果我尝试在流中解密具有位腐错误的文件流会发生什么?这是可恢复的状态吗?

4

1 回答 1

2

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

关于该主题的 wiki 文章是一个很好的入门读物。请参阅:分组密码操作模式

于 2013-10-20T17:56:38.993 回答