【问题标题】:C#: Could I use the following method to permanently delete a file from the hard drive?C#:我可以使用以下方法从硬盘驱动器中永久删除文件吗?
【发布时间】:2016-10-31 19:52:43
【问题描述】:

我不会发布代码或任何东西,因为我还没有开始这个项目。但是我理论上可以使用这种方法安全地删除文件吗:

使用System.IO.File 写入所有 0 字节并替换文件中当前的字节(如果需要,甚至可以随机化字节)。

也许随机化文件属性以增加安全性

然后最后删除文件

现在,我知道即使使用这种方法,即使在删除后文件在技术上仍会存储在内存中,但如果我覆盖文件中的所有字节并随机化属性,文件是否仍可恢复?

【问题讨论】:

  • 这取决于文件系统是否将覆盖写入磁盘上的同一位置,我猜。对此没有任何想法。看起来更像是留给某种硬盘清理工具。
  • 我不明白打开文件进行覆盖如何将其内容存储在内存中。您需要专门为此读取文件流。

标签: c# .net file-io io


【解决方案1】:

基本上你想做的就是专业橡皮擦工具(例如CCleaner)也能做的。但是我说“专业”,因为永久删除文件并不容易,并且这些程序通常通过执行您提到的算法给定的次数来做到这一点,通常最多 10 次。

但是,总有机会恢复文件,国家安全机构整天都在处理这个问题。因此,没有 100% 安全的方法,但您可以肯定,经过几次迭代后恢复文件会变得非常困难 - 甚至 if 他们可能会恢复某些内容,但不能保证是整个文件但只是一堆无序的字节。

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 2014-11-03
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多