5

Rubyでファイルを安全に消去するGemまたは手段はありますか? システムに存在しない可能性のある外部プログラムは避けたいと思います。

「安全な消去」とは、ファイルの内容を上書きすることを指しています。

4

3 に答える 3

3

このようなものがあなたを始めさせます:

#!/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

それはあなたを近づけるはずです。

より完全にするために、バイト内の 0 と 1 のビットを交互に0xaa使用することもできます。0 から 255 までのランダムな値が返されます。0x55Random.rand(0xff)

于 2011-12-14T20:56:16.950 に答える
3

*nix を使用している場合は、exec/open3/open4 を使用して shred を呼び出すのが非常に良い方法です。

`shred -fxuz #{filename}`

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

この同様の投稿を確認してください:

PythonまたはRubyでファイルシュレッダーを書いていますか?

于 2011-12-14T17:52:28.293 に答える
2

ただ

  1. ファイルを開く
  2. 少なくとも現在のファイルサイズに等しい量のガベージを書き込みます
  3. flush()close()
  4. 0xffN回繰り返し、異なるパスでガベージをゼロと で混ぜます
于 2011-12-14T19:33:40.560 に答える