首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用简单的方法安全地擦除文件?

使用简单的方法安全地擦除文件?
EN

Stack Overflow用户
提问于 2010-12-30 06:11:27
回答 4查看 4.3K关注 0票数 7

可能重复: C# -永久删除文件

你好,

我正在使用C# .NET Framework2.0。我有一个关于文件粉碎的问题。

我的目标操作系统是Windows 7、Windows和Windows。可能是Windows 2003或2008,但我猜它们应该与前三个相同。

我的目标是安全地删除一个文件。

我不认为使用File.Delete是安全的。我在某个地方读到,操作系统只是在删除文件时将原始硬盘数据标记为删除--这些数据根本不被删除。这就是为什么有这么多的工作方法来恢复所谓的“删除”文件。我也读过,这就是为什么覆盖文件要有用得多,因为那时磁盘上的数据实际上必须改变。这是真的吗?这一般都是需要的吗?

如果是这样的话,我相信我可以简单地写满1和0的文件几次。

我读过:http://www.codeproject.com/KB/files/NShred.aspx http://blogs.computerworld.com/node/5756 http://blogs.computerworld.com/node/5687 安全地删除C#.NET中的文件

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-30 07:19:40

恐怕你正面临着一个复杂的问题。我建议你不要自己解决这个问题。

请注意,除了确保对文件进行物理覆盖(可能在LAN、flash或其他方面)之外,您还必须处理任何应用程序缓存、windows hibernate文件、windows恢复文件、windows交换文件,以及该文件的所有副本或旧版本(交换以前包含缓存的所有空白空间,或者更糟的是包含缓存的空间,并且可能已经分配给其他文件)--所有顺序都是正确的。

我认为,如果您能够将文件存储在专用的逻辑(甚至物理)驱动器上(这不是操作系统或其他应用程序所使用的),并且在内存中(使用VirtualLock())时,您可以说服Windows不要交换用于保存文件的内存,那么您的机会可能会更大。尽管如此,您还是应该删除交换、缓存等。

最重要的是,您应该将像橡皮檫这样的产品集成到您的应用程序中(橡皮擦是免费软件,其源代码是在GNU通用公共许可证下发布的)。

票数 5
EN

Stack Overflow用户

发布于 2010-12-30 06:18:11

从什么我读过来看,使数据不再可见的解决方案似乎是用0和1覆盖文件。

票数 2
EN

Stack Overflow用户

发布于 2010-12-30 06:31:03

如果您要安全删除的文件首先是您的文件,那么首先您可能需要考虑加密它。然后,即使在删除后恢复,信息也不会被公开(假设您可以控制密钥)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4560425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档