在.NET中粉碎文件

时间:2009-06-25 23:04:43

标签: c# .net security shred

是否有可以在托管代码中使用的SDK来安全地粉碎文件?

编辑:This是我在google中找到的唯一可以帮助我的链接

编辑:SDK或某种基于COM的组件。

3 个答案:

答案 0 :(得分:4)

code from codeproject可能是一个很好的起点。

Eraser已存在多年,您可以使用System.Diagnostics.Process调用它,或者至少查看那里的算法。

答案 1 :(得分:1)

技术在过去几年发生了变化,所以当我碰巧看到这个答案时(为什么不再接受答案?)我想为其他有类似问题的人提供更新。

请注意,碎化非常依赖于文件系统和媒体。尝试在基于日志的文件系统或存储在智能(写入调平)闪存上的文件系统上“粉碎”文件并不会让你走得太远。您必须至少编写足够的数据来完成填充设备,以避免旧数据被覆盖一次。

更有可能你必须编写几个较小的文件,当你获得FS满时,删除一个,然后继续写一个新文件,以确保所有保留空间也被覆盖。那么你可能会相当安全。可能。

我说可能是因为存储介质/ FS可能会判断一个块出现故障(或相对使用过多)并将其映射为替代磁盘的其他部分。当然,这是一个单块的东西,所以任何更大的文件都不太可能被重建。

答案 2 :(得分:1)

在CodePlex上查看Windows.WinAny.Helper。它具有 SecureDelete 扩展名,允许您使用不同的算法(如Gutmann,DoD-7,DoD-3,Random或Quick)粉碎文件。