如何以编程方式真正清理删除文件?

pra*_*ash 8 filesystems hard-drive systems-programming

因此,您即将把工作计算机传递给您的同事.您如何确保真正删除所有个人数据?

重新格式化,重新安装操作系统不会真正解决问题.

我四处搜索,发现 一些 程序会"擦掉"磁盘.

这让我想到这些程序是如何工作的?我的意思是,他们使用什么算法以及这些实现的低级别?

有任何想法吗?

Ran*_*pho 7

这些程序中的大多数通过用随机噪声覆盖文件位来进行"安全删除".

最大的问题更多地与硬盘驱动器和文件系统的实际实现有关.碎片,缓存,数据实际上你试图覆盖的地方:这是一个大问题.这是一个非常低级的问题 - 驱动程序级别,真的.你无法用Python,C#或Java来做到这一点.

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

进一步阅读:


Ste*_*ini 5

安全删除程序会使用随机数据模式多次覆盖文件,因此即使是残余磁化也无法被拾取并在噪声中丢失。然而,假设伟大的零挑战有一定的道理,我认为你可以用零填充文件/磁盘并称自己很高兴,因为即使使用专业设置,这种剩余磁化实际上也是不可能拾取的。


jhe*_*iko 0

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

无论如何,这都是偏执狂。只需删除一个文件通常就足够了......