私はMD5 ハッシュ値に関するこの質問を読んでいましたが、受け入れられた回答は私を混乱させます。私が理解しているように、暗号化ハッシュ関数の主な特性の 1 つは、同じハッシュ値を持つ 2 つの異なるメッセージ (入力) を見つけることができないということです。
しかし、なぜ MD5 ハッシュ値が元に戻せないのかという質問に対するコンセンサスの答えはまだありません。無限の数の入力文字列が同じ出力を生成するためです。 これは私には完全に矛盾しているように思えます。
また、アルゴリズムが公開されているにも関わらず、ハッシュ値が依然として元に戻せないという事実は、私を多少困惑させます。これは、ハッシュ関数で常にデータが失われるため、どのデータが破棄されたかを知る方法がないためですか?
入力データ サイズが固定出力データ サイズよりも小さい場合 (たとえば、パスワード "abc" のハッシュ) はどうなりますか?
編集:
OK、私がこれをまっすぐに持っているかどうか見てみましょう:
- 同じ出力を生成する入力文字列が無数にあるため、ハッシュから入力を推測するのは非常に困難です(元に戻せないプロパティ)。
- ただし、同じ出力を生成する複数の入力文字列のインスタンスを 1 つでも見つけることも非常に困難です (衝突耐性の特性)。