Jas*_*son 7 c# security aes sha512
可能重复:
C# - 永久删除文件
你好,
我正在使用C#.NET Framework 2.0.我有一个与文件粉碎有关的问题.
我的目标操作系统是Windows 7,Windows Vista和Windows XP.可能是Windows Server 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中的文件
我担心你面临着一个复杂的问题.我建议你不要试图自己解决.
请注意,除了确保文件的物理覆盖(可能是通过LAN,闪存或其他)之外,您还必须处理任何应用程序缓存,Windows休眠文件,Windows恢复文件,Windows交换文件和所有副本此文件的旧版本或更旧版本(交换所有空白空间,或者更糟糕的是,之前包含缓存的空间,可能已经分配给其他文件) - 所有这些都按正确的顺序排列.
我认为,如果您能够将文件存储在操作系统或其他应用程序未使用的专用逻辑(甚至物理)驱动器上,并且您将说服Windows不要交换,那么您的机会会更好.用于保存文件的内存,在RAM中(使用VirtualLock()).不过,你应该删除交换,缓存等.
最重要的是,您应该将像橡皮擦这样的产品集成到您的应用程序中(橡皮擦是免费软件,其源代码是在GNU通用公共许可证下发布的).