【问题标题】:How to programmatically really clean Delete files?如何以编程方式真正清理删除文件?
【发布时间】:2010-10-22 08:33:16
【问题描述】:

所以你即将把你的工作电脑交给你的一些同事。您如何确保您确实删除了所有个人数据?

重新格式化,重新安装操作系统并不能真正解决问题。

我四处搜索,found some programs 会“清除”磁盘。

这让我开始思考这些程序是如何工作的? 我的意思是,他们使用什么算法以及这些实现有多低级?

有什么想法吗?

【问题讨论】:

标签: filesystems hard-drive systems-programming


【解决方案1】:

据我所知,大多数工具都通过 X 次写入和删除来执行此操作,其中 X 是相当大的数字。做到这一点的最佳方法可能是在某种程度上与硬件接口,尽管一种廉价且简单的方法是创建文件直到磁盘已满,写入随机数据,删除它们,创建新文件并重复。

反正都是偏执狂。仅仅删除一个文件通常就绰绰有余了...

【讨论】:

    【解决方案2】:

    这些程序中的大多数通过用随机噪声覆盖文件位来执行“安全删除”。

    最大的问题更多地与硬盘驱动器和文件系统的实际实施有关。碎片化,缓存,数据实际上是 你试图覆盖:这是大问题。这是一个非常底层的问题——驱动程序级别,真的。你将无法使用 Python、C# 或 Java 来实现。

    一旦解决了这个问题,那就是物理媒体。由于磁性介质的性质,经常可以读取曾经在硬盘驱动器上的先前位 - 即使您用不同的位覆盖了它们。 “安全删除”程序通过多次覆盖来解决这个问题——最好是随机但适当的多次。

    进一步阅读:

    【讨论】:

    • 您可能无法在没有驱动程序访问的情况下破坏 HDD 上的某些数据部分(例如引导扇区),但使用 C# 或 Java 之类的东西可以在整个磁盘上写入大文件获得同样的效果......还是我错过了什么?
    • 这可能是一种几乎可以完成所需工作的廉价方法,但除非您深入到驱动程序级别,否则您不能保证所有文件都会实际写入磁盘 - 特别是如果您立即再次覆盖文件。 HD 可能会将读取和写入缓存在易失性内存中。
    • 是否有任何真实的参考资料表明只在扇区上写入一次,并且具有可预测的模式(例如只有零)是不够的?
    • 我在 Wikipedia 上阅读了 Data Remanance。有很多链接可以回答您的问题。我将在我的原始帖子中添加链接。
    • @Albert -- 根据@Stefano 的链接,没有。你也应该读一下。
    【解决方案3】:

    安全删除程序会使用随机模式的数据多次覆盖文件,因此即使剩磁也无法被拾取并丢失在噪音中。 但是,假设 the great zero challenge 有一定道理,我认为您可以用零填充文件/磁盘并称自己为快乐,因为即使使用专业设置,这种剩余磁化实际上也无法选择。

    【讨论】:

    • 我从没听说过大零挑战。感谢您的链接! +1
    • 当然,不知道 CIA/NSA 是否真的能做到 :)
    • 我认识一些数据恢复公司的人。也许我可以说服他们接受挑战。
    • 据我了解,你需要一个非常灵敏和特殊的仪器来挑选剩余磁化强度,而且无论如何,当你真正这样做时,剩余量将不仅仅取决于最后一个磁状态,但在该集群之前的所有状态上。这引入了很多噪音,使得完全恢复恕我直言是不可能的。即使您只恢复了它的一部分,您也必须幸运地准确恢复您需要的部分(如从文件系统结构中恢复)。所以,我个人认为归零就足够了,但我不会打赌,欢迎被证明是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    相关资源
    最近更新 更多