RubyのMD5の仕様変更?


Rubyにはまだ入門すらしていない脇田の言うことですから、話、半分に聞いていて下さい。つい先週、見よう見まねでインスールした gyazo を奥様に自慢して見せようとしたら、うまく動かない。てっきり、URL とか SDBM とかファイルのパーミションあたりの処理に問題があるのだろうと思って、これも怪しげな方法でデバッグしていたのですが、ようやくわかったのは Ruby の MD5 用のパッケージでオブジェクトを初期化する仕様変更があったみたい。

増井さんの小便利ツールにはときどきお世話になっています。つい10日前のこと[[gyazo:http://gyazo.com/%5D%5Dを利用し始めました。gyazoは画面ダンプを取って、ウェブにアップロードするサービスですごく便利なので是非、使ってみて下さい。gyazoサイトではMac版が公開されているのですが、Linux や Windows でも利用できるパッケージへのリンクがあります。gyazo アプリケーションは Ruby で書かれていて、サーバサイドのスクリプトも Ruby で書かれています。

これも Ruby にさわるよい機会かと思い、アプリケーションとサーバサイドのスクリプトをちょっとずつ修正して動くようにしました。うまく動いて喜んでいたのが約10日前です。

海外出張から戻ったばかりの奥様に自慢しようと、今朝、デモしたらうまく動かない!また、いつものマーフィーの悪さかよ。

入門書すら読んだことがない慣れない身で Ruby のデバッグを始めたところ、落しあなが以外なところに。アップロードした画像ファイルの内容の MD5 ハッシュを計算する以下のコードでとまっているようでした。

Digest::MD5.new(imagedata).to_s

狐が周囲を取り囲んでいるので、とりあえず Google 先生を訪ねたところ、[[ご信託:http://d.hatena.ne.jp/jitte/20070910/1189431469%5D%5D((jitteさんの2007-09-10の日記「Digest::MD5の仕様が(随分前に?)変わってた」))が下りました。

以下のように修正すればよいようです。

Digest::MD5.new.update(imagedata).to_s

よく分らないのですが、sakura.ne.jp の Ruby が更新されたんだろうか?もしそうなら、こういう情報は契約者に届かないのかな?

それと、増井さんの本家 gyazo は大丈夫なんでしょうか?

RubyのMD5の仕様変更?」への1件のフィードバック

  1. その後、増井さんに連絡してみました。Ruby のバージョンによってサーバサイドのスクリプトが動かないことはご存知でした。gyazo のサイトでは Digest::MD5.hexdigest(imagedata) としているのだそうです。こちらのコードも sakura.ne.jp で動くので、こちらに変更させていただきました。

コメントは受け付けていません。