なんとも迷惑極まりないデータベースがあったもんだ。
これは厳密には復号とは言わないと思うけど、任意のMD5ハッシュ値を発生させる元データが取得できるので十分脅威的ですね。弱衝突耐性が突破されるってことか。
パスワードのハッシュ値でパスワード検証している場合は、ハッシュ値の流出が事実上パスワードの流出になってしまうわけで。つまりデータベースにハッシュを保存するならば、パスワードに秘密の文字列を結合するとか、パスワードをビット反転するとか、パスワードに何らかのスクランブルをかけてからハッシュ化しないとダメっぽい。
ま、セキュリティにうっさい案件では普通にやってると思うけど。
さらに追記:
ハッシュ化アルゴリズムをSHA512に変えれば防げるというわけではありません。SHA512でも同じようなデータベースを作れば同じ事になります。
あとスクランブルするだけじゃダメみたいですね
パスワードが同じであればハッシュ値も同じになるので、AさんがBさんのハッシュ値を知ることができれば、Bさんのパスワードが自分のパスワードと同じ(mikkumiku)だと分かってしまう。
http://www.machu.jp/diary/20071024.html#p01
の視点が抜けていました。
それから、さらに間違い。任意のMD5ハッシュ値じゃないですね。あくまでデータベースに登録されてあるものだけです。
うーん、まちがいだらけ。まだまだ勉強が足りないな。