据我所知,硬盘驱动器中存在一个文件表,其中不包含每个文件的数据,但可以指向它。
当您删除一个文件时,它的记录会从文件表中删除,但数据仍保留在计算机上。
所以问题是:如果你覆盖一个文件的数据,比方说,只是使用 WriteFile Win API 用零覆盖所有数据,那会变得不可恢复吗?
据我所知,硬盘驱动器中存在一个文件表,其中不包含每个文件的数据,但可以指向它。
当您删除一个文件时,它的记录会从文件表中删除,但数据仍保留在计算机上。
所以问题是:如果你覆盖一个文件的数据,比方说,只是使用 WriteFile Win API 用零覆盖所有数据,那会变得不可恢复吗?
是的,很有可能。然而,总会有边缘情况:
所以问题是:如果你覆盖一个文件的数据,比方说,只是使用 WriteFile Win API 用零覆盖所有数据,那会变得不可恢复吗?
不要使用 WIN API WriteFile 来尝试安全删除。而是使用像 SysInternals sdelete 这样的安全删除工具。
如果您只使用 WriteFile 操作系统/文件系统可以选择将新数据(例如,一堆空字节或其他)写入磁盘上的新块,然后更新主文件表以指向新块不是旧街区。您将无法保证您已经覆盖了原始文件数据(除非您使用 WriteFile 来写入与整个磁盘一样大的文件)。
以 100% 可靠的方式处理文件的一种方法是将其保存在您可以清除的单独 HDD 分区上,或者更好的是,保存在您可以承受破坏的单独介质上。
如果这不切实际,一个好的折衷办法是确保文件仅以加密方式存储。当你需要“摧毁”它时,你所要做的就是忘记钥匙。您不必关心导致文件未被完全覆盖的边缘情况。
下一个不太安全的替代方法是使用您信任的文件粉碎机。如果正确实施,它将跟踪与文件关联的磁盘上的每个扇区并覆盖它。当然,它无法销毁您、您的操作系统或您的存储控制器制作的任何它不知道的数据副本(想想临时文件、交换、磁盘碎片整理等)。一般来说,只有为经过安全审计的工具付费才有意义。
然后是您简单地覆盖文件的想法。它不是 100% 安全的,但它肯定会使用现成的取消删除工具使数据无法恢复。在许多实际情况下,这实际上就足够了。