通过多次加密和文件删除来保护文件擦除

时间:2013-06-05 23:42:14

标签: file-io aes encryption-symmetric

我想要安全地擦除任何类型或格式的文件 - 显然C#中的File.Delete命令不够安全。

我似乎回想起这里的一篇文章(我再也找不到了!)解释现代文件系统(即比FAT32更新)在尝试这种删除时可能会导致问题,因为它们是一个日记文件系统恢复数据比以往任何时候都容易得多。

经过更多的阅读,我读到这将是一个想法:

  1. 生成随机的256位加密密钥。
  2. 将FileA加密到FileB。
  3. 生成新的随机256位加密密钥。
  4. 将FileB加密为FileA。
  5. 重复这个次数以适应您的偏执程度。
  6. 使用File.Delete删除FileA和FileB。
  7. 对于使用永远不可恢复或可重复使用的密钥来反复加密/重新加密文件中数据的逻辑方法,这实际上是一种安全方式吗?文件系统是否会覆盖同一位置/群集中的文件(显然文件会增长,因为它的内容需要加密/重新加密),确保原始内容被覆盖?

1 个答案:

答案 0 :(得分:1)

您的方法不一定能解决您的问题,并且问题不仅存在于日记文件系统中。 (旧的DOS取消删除工具证明了这一点。)

现代文件系统可以随时移动文件,对当前正在运行的程序透明,因此处理文件内容并不能保证您不会在磁盘的一部分中留下该文件的旧副本。标记为未使用。

您最好直接使用加密,而不是相信您可以欺骗操作系统覆盖旧数据。