【发布时间】:2013-06-05 23:42:13
【问题描述】:
我想安全地擦除任何类型或格式的文件 - 显然 C# 中的 File.Delete 命令远不够安全。
我似乎记得这里有一篇文章(不过我再也找不到它了!)解释了现代文件系统(即比 FAT32 更新)在尝试这种删除时可能会导致问题,因为它们是一个日志文件系统并且恢复数据比过去容易得多。
在阅读了更多之后,我认为这是一个想法:
- 生成随机的 256 位加密密钥。
- 将文件 A 加密到文件 B。
- 生成一个新的随机 256 位加密密钥。
- 将 FileB 加密到 FileA。
- 重复此 n 次以适应您的偏执程度。
- 使用 File.Delete 删除 FileA 和 FileB。
这似乎是一种使用永远无法恢复或重复使用的密钥反复加密/重新加密文件中数据的合乎逻辑的方式,但这实际上是一种安全的方式吗?文件系统是否会覆盖同一位置/集群的文件(显然文件会随着内容的加密/重新加密而增长),确保覆盖原始内容?
【问题讨论】:
标签: file-io aes encryption-symmetric