【md5について疑問】


様々なプログラムで、md5で32ビットのハッシュ値を生成することが出来ますが、ひとつ疑問が浮かびました。

md5ハッシュを生成する元の文字列が、32ビット以上の場合、
その任意の文字列が、md5ハッシュで生成されるパターンを超えてしまって、同じモノが生成される事もあるんじゃないかな?と思います。

と言うことは、例えば、IDやパスワードなどの値をmd5でDBに保存した場合、それはUNIQUEな値やPRIMARYな値にはなり得ないと言うことでしょうか??

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/05 12:43:35
  • 終了:--

回答(1件)

id:ootatmt No.1

ootatmt回答回数1307ベストアンサー獲得回数652005/12/05 12:58:05

ポイント40pt

MD5ハッシュで同じ値が生成される(衝突する)ことはあります。


> と言うことは、例えば、IDやパスワードなどの値をmd5でDBに保存した場合、それはUNIQUEな値やPRIMARYな値にはなり得ないと言うことでしょうか??


そうなります。

id:keijiro

なるほど。

やはりそうですか。

頭に何か値を付けないとダメですね。

ありがとうございます。

2005/12/05 13:10:42
  • id:mahbo
    解決策が違うのでは・・・

    >頭に何か値を付けないとダメですね。

    頭に付けるのが元データなのかハッシュ値なのかはっきりしないですが、先にするのならハッシュの衝突は避けられない気がしますし、後にするのならそもそもハッシュにする理由が判らない・・・。
  • id:fuk00346jp
    md5は128ビット

    ビット数間違ってますしそもそも不可逆です。(データ復号出来ません。)

    データ復号する目的ならishでしょ…(バイナリをテキスト化するだけで暗号化はしません)

    >同じモノが生成される
    は下記リンク先でも指摘されています。

    MD5はCRC(CRC32)と併用する事によってファイルの欠落が無いかチェックするのに有効です。
    http://d.hatena.ne.jp/keyword/md5

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません