C中的安全文件删除

kil*_*ode 5 c file-io

C中的安全文件删除

我需要安全删除C中的文件,这是我做的:

  1. fopen获得的文件句柄
  2. 使用lseek/ 计算大小ftell
  3. 根据当前时间/或文件大小获取随机种子
  4. 从一个循环中将(size)字节写入文件,每次迭代写入256字节
  5. fflush/ fclose文件句柄
  6. 重新打开文件并重新执行步骤3-6 10到15次
  7. 重命名该文件,然后将其删除

这是怎么做的?因为我在橡皮擦中读到了"Gutmann 25 pass"的名字,所以我猜25是文件被覆盖的次数,'Gutmann'是随机化算法?

Mar*_*ett 8

没有操作系统的合作,你不能安全地做到这一点 - 而且往往不是这样.

当您打开文件并写入文件时,无法保证操作系统会将新文件放在与旧文件相同的旋转生锈位上.即使它确实如此,您也不知道新写入是否会像以前一样使用相同的簇链.

即使这样,你也不确定驱动器是否由于某些故障而没有映射出磁盘块 - 将你的世界统治计划留在标记为坏但仍然可读的块上.

ps - 不再需要25x覆盖,在头部跟踪较差的旧低密度MFM驱动器上需要它.在现代GMR驱动器上覆盖一次就足够了.