在.NET 中的粉碎文件中,建议使用Eraser或CodeProject上的此代码来安全地擦除 .NET 中的文件。
我试图制作自己的方法,因为来自 CodeProject 的代码对我来说有一些问题。这是我想出的:
public static void secureDelete(string file, bool deleteFile = true)
{
string nfName = "deleted" + rnd.Next(1000000000, 2147483647) + ".del";
string fName = Path.GetFileName(file);
System.IO.File.Move(file, file.Replace(fName, nfName));
file = file.Replace(fName, nfName);
int overWritten = 0;
while (overWritten <= 7)
{
byte[] data = new byte[1 * 1024 * 1024];
rnd.NextBytes(data);
File.WriteAllBytes(file, data);
overWritten += 1;
}
if (deleteFile) { File.Delete(file); }
}
它似乎工作正常。它随机重命名文件,然后用 1 mb 的随机数据覆盖它 7 次。但是,我想知道它实际上有多安全,如果有的话我可以让它更安全吗?