仁がWeb技術っぽい記事を書いています。MD5をRubyでも出来てないのは寝覚めが悪いと言うことでRubyで生成する方法を調べてみた。Xでなんとか試してみていたけど、うまくいかなかった。Xのcrypt(3)では標準のDESだけでMD5をサポートしていないらしい。Rubyのcryptはライブラリのcrypt(3)を実行しているのでシステムによってMD5を利用できないようだ。そこで、CentOS5.5で実行してみるとうまくいった。6.1でも大丈夫だった。"$1$hv9t/Syk$HnXkC52c9l6VJ5x.vSe8P."Stringのcryptメソッドに”$1$”で始まるsaltを渡してあげればよい。saltの最後の”$”はオプションであってもなくてもよい。この場合saltは”password”という文字列を8文字のsalt”hv9t/Syk”を使ってMD5ベースのハッシュを生成している。ちなみにPerlも大して変わらない。'$1$hv9t/Syk$');C言語ならこんな感じ。0;}実際にはRubyでもC言語のcrypt関数が使われてるのでRubyの結果と同じだ。cryptCentOSでコンパイルするにはライブラリへのリンク(-lcrypt)を指定する必要がある。crypt$./crypt$1$hv9t/Syk$HnXkC52c9l6VJ5x.vSe8P.現在利用しているシステムでMD5を利用できるかどうかはmanコマンドで判断できそうだ。FreeBSDには記述がある。bytes).FreeBSDではまた別な記述だったので、本当にシステムによって実装が違うということがよくわかる。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。仁がWeb技術っぽい記事を書いています。