varchar(50) NOT NULL,
md5ハッシュコードに使用している簡単な質問
32として使用してもよいかどうか知りたいだけですか?
他と一致しない限り、私は何百万ものMD5ハッシュコードを持っています.2つの異なるキーワードが同じMD5ハッシュを持つことができる現金はありますか?
ありがとう
VARCHAR
長さがわからない文字列の場合は、パフォーマンスの低下と柔軟性のトレードオフを行います。フィールドの長さが 32 文字になることがわかっているので、代わりにCHAR(32)
(正確に32 文字が必要です) を使用する必要があります。
衝突の可能性について: はい、MD5
ハッシュは同一である可能性があります。これを自分で簡単にテストするにはmd5sum
、33 文字の 16 進数をテストします。これが機能する場合、出力よりも多くの可能性のある入力があることがわかります。そのため、2 つの入力を同じ出力にマッピングできる必要があります。
これらの 2 つのブロック (このリンクの厚意による) は両方とも of を与えることで有名md5sum
です79054025255fb1a26e4bc422aef54eb4
:
BLOCK 1:
d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89
55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70
BLOCK 2:
d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89
55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70
この Web サイトでは、特定の文字列が衝突する理由を視覚化しています (興味がある場合) (非常に技術的ですが、メッセージ ダイジェストとハッシュをよりよく理解したい場合は非常に興味深いものです)。
特定のサイズを扱っているchar(32)
ため、パフォーマンスを向上させるために使用します。
varchar
文字列の長さを格納するには、さらに数バイトが必要です。長さはすでにわかっているので、必要ありません。