digestをいじってみる
前回のhashの応用で用いた"Digest::SHA256"で書いたsha256.rbを"Digest::MD5"に書き換えてみる。リファレンスマニュアルでlibrary digestをみると
全てのメッセージダイジェストの実装クラスは、基底クラスである Digest::Base と同じインタフェースを持ちます。
なので、SHA256クラスからMD5クラスに変えてsha256.rbをmd5.rbに書き変えてみた。
sha256.rb
require "digest/sha2" $*.each do |file| sha = Digest::SHA256.new() sha.file(file) puts("hush ->#{sha.hexdigest()}") end
md5.rb
require "digest/md5" $*.each do |file| md5 = Digest::MD5.new() md5.file(file) puts("hush -> #{md5.hexdigest()}") end
実行できました。ベースが一緒だと楽でいいですね。
環境や条件によってMD5とSHAを使い分けるらしい。