2011-12-14 9 views

Respuesta

3

Si usted está en * nix, una muy buena manera sería llamar simplemente triturar usando exec/open3/Open4:

`shred -fxuz #{filename}` 

http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html

Comprobar este puesto similar:

Writing a file shredder in python or ruby?

+1

_ "Me gustaría evitar programas externos que pueden no estar presentes en el sistema." _ Supongo que eso significa que uno no puede asumir qué SO se usa, pero se desea para correr donde sea que Ruby corra. – Phrogz

2

solo

  1. abra el archivo
  2. escribir un poco de basura al menos en cantidad igual al tamaño del archivo actual
  3. flush() y close()
  4. repetición N veces, la mezcla de basura con ceros y 0xff 's en diferentes pasadas
+0

¿Por qué no muestra un código de muestra? –

3

algo como esto le ayudará a empezar:

#!/usr/bin/env ruby 

abort "Missing filename" if (ARGV.empty?) 

ARGV.each do |filename| 
    filesize = File.size(filename) 
    [0x00, 0xff].each do |byte| 
    File.open(filename, 'wb') do |fo| 
     filesize.times { fo.print(byte.chr) } 
    end 
    end 
end 

se debe conseguir que CLO se.

Para mayor rigurosidad, también puede usar 0xaa y 0x55 para alternar 0 y 1 bit en el byte. Random.rand(0xff) le dará un valor aleatorio de 0 a 255.

Cuestiones relacionadas