在.NET中的Shredding文件中,建议在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); }
}
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常.它随机重命名文件,然后用1 mb的随机数据覆盖7次.但是,我想知道它实际上有多安全,如果有的话,我可以让它更安全吗?