MD5アルゴリズムは常に同じ文字列に対して同じ出力を生成しますか?
異なる出力を生成するために塩を使用することだけですか?
はい。そうでない場合、MD5はファイル検証などには役に立ちません。非決定論的な出力にはどのような理由がありますか?
はい、ハッシュアルゴリズムは常に同じ出力を生成します。同じソルトを使用すると、特定の入力に対して常に同じ出力が生成されます。
はい、MD5は同じ入力で常に同じ出力を出します。これがパスワードの使用方法です。ハッシュをデータベースに保存し、ユーザーがパスワードを入力すると、ハッシュが再度ハッシュされ、2つのハッシュが比較されます。
注:MD5は暗号的に弱いため、パスワードのハッシュにはお勧めしません。 bcrypt など、より適切な暗号化ハッシュが利用可能です。ただし、歴史的には、この目的で使用されてきました。
はい、MD5は決定論的であり、これはメッセージダイジェスト機能の多くのアプリケーションにとって望ましい特性と見なされています。
ソルトを使用するということは、実際には「入力文字列を微妙に変更する」という意味ですよね。そしてもちろん、メッセージダイジェストの望ましい特性は、異なるメッセージに対して異なるダイジェストを(非常に高い確率で)生成することです。
はい。 MD5はハッシュ関数です。
これはnot MD5が一意であることを意味します。複数の入力を同じハッシュにマップできますが、特定の入力にはハッシュが1つしかありません。
はい。場合によっては、異なる文字列に対して同じハッシュを作成します。