【问题标题】:how delete a file completely from a Windows System如何从 Windows 系统中完全删除文件
【发布时间】:2015-05-02 02:45:59
【问题描述】:

我已尝试搜索,但没有找到任何适合我的查询的答案。

我想知道如何从 Windows 系统中完全删除文件,以使其无法以任何方式恢复。

我知道互联网上有一些软件可以完全从系统中删除文件。我想为自己做一个小演示,想看看它是否真的从系统中删除/擦除。

例如:如果我使用 SHIFT + DELETE 删除文件,我知道普通用户无法恢复该文件。但是有可以用来恢复该文件的恢复软件。所以,我只是想以某种方式删除文件,以便恢复软件无法恢复特定文件。

谁能告诉我,这是怎么做到的?我真的很感激。如果有人可以分享一小段代码来做到这一点。我可以通过这种方式更好地理解它。

谢谢

问候

【问题讨论】:

  • 清零文件然后移位删除
  • @Milind 为了安全起见,请务必用零填充硬盘驱动器的其余部分。
  • 只是出于好奇,您为什么要让恢复软件无法使用它..?您是否正在做某事ShadyIllegal,您觉得需要CYA..?你能提供更多关于这个重要性的信息吗?
  • 嗯,有这个superuser.com/q/86824/29943,但我认为这些答案都不正确。

标签: c# c++ c operating-system


【解决方案1】:

这是一个艰难的问题,不是“一小段代码”就能解决的问题。

假设您有一个超级秘密/令人尴尬/非法/您真正想要摆脱的任何文件。首先,它应该首先被加密。只是说说而已。

无论如何,部分甚至整个文件都可能出现在很多地方。内存、页面文件、休眠文件、硬盘驱动器上的所谓空白空间(例如通过碎片整理重新定位文件内容之后)。你们有在线同步服务吗?备份?一个 SSD 驱动器,可以在每次写入时将您的文件分布在整个物理块上?亲爱的。

因此,至少在您的 lokal 系统上真正真正摆脱该文件是您必须采取的最低措施

  • 通过您选择的 API 将其删除(通过普通 UI 将其移至“垃圾箱”除外)
  • 禁用并删除系统页面文件
  • 删除休眠文件
  • 用随机字节覆盖硬盘驱动器的所有假定空白空间
  • 重启系统
  • 重新实例化页面文件

但是:SSD 和某些硬盘驱动器具有备用容量块,当块产生错误时它们用作备用容量块。如果您的文件恰好位于这样一个失败的块中,它可能已被驱动器固件静默地重新定位,并且驱动器将永远不会通过可通过 Windows API 访问的方式再次写入该块。因此,如果您想真正确定必须物理销毁该文件曾经写入的所有驱动器。

【讨论】:

  • 很好地总结了为什么不能选择性地删除单个文件。我希望关于 SuperUser 的相关问题(这实际上是关于主题)的答案是直截了当和消息灵通的。
  • 是的,非常好的总结。它真的帮助我理解了这个概念。我正在编写一个安全的聊天程序,我将在其中制作文件共享模块,我需要在其中删除共享的文件。所以,我很困惑,但这确实帮助我理解了一些事情。如果您想给我,对我的程序有任何建议,欢迎您:)
  • @AmanThakur:尝试用随机字节覆盖完整的文件内容,关闭它,然后删除它。如上所述,内容仍有可能恢复,但至少不会很容易恢复。如果您在程序中使用密码学,请不要尝试自己编写。加密是hard,即使是久经沙场的专家也总是会出错。搜索完善且维护良好的加密库,以解决您的特定问题。
  • 谢谢 Toni,你真的给了我一个非常有用的信息。我真的很感激。
猜你喜欢
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 2014-01-09
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多