1. ホーム
  2. hash

[解決済み] MD5ハッシュはなぜ可逆ではないのですか?

2023-01-08 08:47:13

質問

私がいつも不思議に思っていることのひとつに、暗号化ハッシュ関数とその値の利用があります。これらの関数は、ユニークで事実上逆引きが不可能なハッシュ値を生成できることは理解していますが、私がいつも不思議に思っていることは以下の通りです。

私のサーバー上であれば、PHPで私は生成します。

md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e"

同じ文字列をMD5関数にかけると、PHPのインストールで同じ結果が得られます。あるプロセスが、ある開始値から、ある値を生成するために使用されています。

これは、起こっていることを分解してハッシュ値を逆転させる何らかの方法があるということではありませんか?

これらの関数の何が、結果の文字列を逆引きできなくしているのでしょうか?

どのように解決するのですか?

入力材料は無限の長さを持つことができ、出力は常に128ビットの長さです。 これは、無限の入力文字列が同じ出力を生成することを意味します。

乱数を選んで2で割って余りだけを書き出すと、0か1のどちらか、つまり偶数か奇数が得られます。 その0か1を取って、元の数字を得ることは可能でしょうか?