From: KIMURA Koichi Date: 2007-04-12T10:53:50+09:00 Subject: [ruby-list:43421] Re: MD5の値が合わない原因は? 木村です。 Windowsの呪いです(違う) On Thu, 12 Apr 2007 10:23:27 +0900 岩崎 弘孝 wrote: > ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-p35.tar.gz > をダウンロードしてWindows上の他のツールでMD5の値が正しい値、 > fe413bf114e16b0cd596d869743e9d35 > であることを確認しました。 > > ruby -r md5 -e 'puts MD5.new(open("ruby-1.8.5-p35.tar.gz").read).hexdigest' > とすると > 26daa8ac0fb60abe9d366a967d66e3db > と表示されました。 > > 他のファイルも試しましたが、同様に異なる値を表示します。 > そもそもMD5の使い方が正しいのかも自身が無い状況です。 > > このような違いが発生する原因にはどのようなものが考えられますか? E:\test>md5sum -b ruby-1.8.5-p35.tar.gz fe413bf114e16b0cd596d869743e9d35 *ruby-1.8.5-p35.tar.gz E:\test>ruby185 -r md5 -e 'puts MD5.new(open("ruby-1.8.5-p35.tar.gz").read).hexdigest' 26daa8ac0fb60abe9d366a967d66e3db E:\ruby-stable>ruby185 -r md5 -e 'f=open("ruby-1.8.5-p35.tar.gz");f.binmode;puts MD5.new(f.read).hexdigest' fe413bf114e16b0cd596d869743e9d35 ということで、バイナリファイル相手にテキストモードで読み込んでしまった ために計算結果が合わなくなってしまっているということです。 -- 木村浩一