From: moonwolf@... Date: 2007-04-13T05:33:56+09:00 Subject: [ruby-list:43431] Re: MD5の値が合わない原因は? MoonWolfです。 岩崎 弘孝 : > ruby -r md5 -e 'puts MD5.new(open("ruby-1.8.5-p35.tar.gz").read). hexdigest' > とすると > 26daa8ac0fb60abe9d366a967d66e3db > と表示されました。 > > 他のファイルも試しましたが、同様に異なる値を表示します。 > そもそもMD5の使い方が正しいのかも自身が無い状況です。 md5ではなくdigest/md5を使った方が良いと思います。 SHA-1などの他のアルゴリズムも統一されたインタフェースで使えます。 > このような違いが発生する原因にはどのようなものが考えられますか? > > 環境は > ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32] > です。 バイナリモードで開くか、IO#binmodeでバイナリモードに切り替えないと駄目です。 open("ruby-1.8.5-p35.tar.gz","rb")としてバイナリモードで開くようにしてみて ください。 ちなみに、IO.readだとバイナリモードの指定が出来ないのでopenしてからreadし ないと駄目です。