使用C#擦除硬盘驱动器上的可用空间

Cra*_*893 6 .net c# security hard-drive

我的任务是覆盖几台笔记本电脑上的所有可用空间3次.我知道有一些选择,但我想知道事情是如何工作的,如果我能用C#自己做的话.

1)是的,我知道有很多免费软件应用程序可以做到这一点

2)不,我们不需要遵守任何具体的政府标准

我在哪里可以找到关于如何开始这个的想法?

谢谢,如果你能指出我正确的方向.

可以用C#实现吗?如果是这样,怎么样?

Pau*_*sik 3

简单的算法:

  • 创建一个包含任意文本的大型文本文件(出于性能原因,最好使用预先创建的文件而不是重新生成随机文件。测试一下。)
  • 创建一个巧妙的文件夹和文件命名方案,以便能够跟踪文件。您还应该使用您的应用程序跟踪文件,但如果它崩溃了,特别是在前几次测试运行结束时,您将希望能够轻松找到并清理您方便的工作。
  • 写入硬盘直至写满
  • 删除您创建的文件
  • 再重复以上步骤两次

更新:根据后续讨论对擦除进行更高级的考虑:

  • 第一次写入 0x0000 值的文件(所有位均关闭)
  • 在第二遍中将所有位写入 0xFFFF(所有位打开)
  • 最后一遍重复 0x0000

上面忽略了一些想法,例如文件的最佳大小是多少,无论如何取决于您的文件系统。当您接近已满的 HDD 时,操作系统也可能会出现不同的行为...