【发布时间】:2010-11-06 00:10:46
【问题描述】:
【问题讨论】:
-
我认为普通程序(即不熟悉操作系统和存储介质)不可能可靠地覆盖单个文件。
【问题讨论】:
这个code from codeproject 可能是一个很好的起点。
Eraser 已经存在多年,您可以使用 System.Diagnostics.Process 调用它,或者至少查看那里的算法。
【讨论】:
看看 CodePlex 上的Windows.WinAny.Helper。它具有 SecureDelete 扩展名,可让您使用 Gutmann、DoD-7、DoD-3、Random 或 Quick 等不同算法粉碎文件。
【讨论】:
过去几年技术发生了变化,所以当我碰巧看到这个答案时(为什么没有再次接受答案?)我想为其他有类似问题的人提供更新。
请注意,粉碎在很大程度上取决于文件系统和媒体。尝试在基于日志的文件系统或存储在智能(写入均衡)闪存上的文件系统上“粉碎”文件不会让您走得太远。您至少必须写入足够的数据以完成填充设备,以希望旧数据可能会被覆盖一次。
您更有可能必须写入几个较小的文件,当您的 FS 已满时,删除一个然后继续写入一个新文件,以确保所有保留空间也已被覆盖。那么你可能会相当安全。大概吧。
我说可能是因为存储介质/FS 可以确定一个块出现故障(或相对使用过多)并将其映射到磁盘的其他部分来代替。这当然是每个块的事情,因此不可能重建任何更大的文件。
【讨论】: