web-dev-qa-db-ja.com

MD5アルゴリズムは常に同じ文字列に対して同じ出力を生成しますか?

MD5アルゴリズムは常に同じ文字列に対して同じ出力を生成しますか?

異なる出力を生成するために塩を使用することだけですか?

24
vfclists

はい。そうでない場合、MD5はファイル検証などには役に立ちません。非決定論的な出力にはどのような理由がありますか?

36
Jim

はい、ハッシュアルゴリズムは常に同じ出力を生成します。同じソルトを使用すると、特定の入力に対して常に同じ出力が生成されます。

7
Femaref

はい、MD5は同じ入力で常に同じ出力を出します。これがパスワードの使用方法です。ハッシュをデータベースに保存し、ユーザーがパスワードを入力すると、ハッシュが再度ハッシュされ、2つのハッシュが比較されます。

注:MD5は暗号的に弱いため、パスワードのハッシュにはお勧めしません。 bcrypt など、より適切な暗号化ハッシュが利用可能です。ただし、歴史的には、この目的で使用されてきました。

6
Scott Stafford

はい、MD5は決定論的であり、これはメッセージダイジェスト機能の多くのアプリケーションにとって望ましい特性と見なされています。

ソルトを使用するということは、実際には「入力文字列を微妙に変更する」という意味ですよね。そしてもちろん、メッセージダイジェストの望ましい特性は、異なるメッセージに対して異なるダイジェストを(非常に高い確率で)生成することです。

はい。 MD5はハッシュ関数です。

これはnot MD5が一意であることを意味します。複数の入力を同じハッシュにマップできますが、特定の入力にはハッシュが1つしかありません。

0
riwalk

はい。場合によっては、異なる文字列に対して同じハッシュを作成します。

0