web-dev-qa-db-ja.com

ハッシュが1つの方法である場合、MD5ハッシュを復号化できるのはなぜですか?

ハッシュは一方向の関数であることを何度か読んだことがあります。つまり、メッセージのハッシュを作成できますが、ハッシュから元のメッセージを復元することはできません。その整合性を確認するだけです。

しかし、これが本当なら、なぜMD5ハッシュを復号化して元のデータを取得できるのでしょうか。

9
eez0

ハッシュは暗号化ではありません(ハッシュです)。MD5ハッシュは、もともと「暗号化」されていなかったため、「復号化」しません。

ハッシュは一方向ですが、確定的です。同じ値を2回ハッシュすると、同じ出力が2倍になります。したがって、MD5ハッシュをクラックすることは、一致が見つかるまで潜在的な入力(パスワード)を試すことです。入力が「人間のユーザーが考え出したパスワード」である場合、それはうまく機能します。人間のユーザーは、パスワードの選択に関しては想像を絶するからです。

43
Tom Leek

MD5を「復号化」することはできません。

あなたができることは、ハッシュに一致する入力につまずくことを期待して、可能な入力の多くを一致させることです。これを大幅に容易にするMD5アルゴリズムに対するいくつかの攻撃があります。

14
user10211