(今のところ)sha256を解読することは不可能だと思いました。しかし、ハッシュを解読できるウェブサイトを見ました。それは、既知のハッシュをデータベースに保存するのか、それともハッシュを実際に復号化するのか?これが画像です:
正解です。ハッシュ関数SHA256
、SHA384
、SHA512
は(現在のところ)壊れていないため、簡単に元に戻すことはできません。 MD5
とSHA1
は、同じハッシュ値を生成する文字列のペアを見つけたが、これらでも数週間または数か月の計算を必要とするため、壊れていると見なされます。
(注:暗号化に使用するWordであるため、サイトが「復号化」を使用するのは好ましくありません。ハッシュを「復号化」することはできません)
彼らがしていることはおそらく 辞書攻撃 で、すべての一般的な辞書単語のハッシュを事前に計算しています。これにより、ハッシュを受け取り、それを生成するWordを返すルックアップテーブルが提供されます。
スケールの考え方を示すために、171,476の英語の単語があり、SHA256
ハッシュは32バイトかかるため、すべての英語の単語のSHA256
ハッシュを格納すると、約5 MBしかかかりません。
ハッシュはクラックされず、事前に計算されて Rainbow table に入れられました。
ハッシュは、暗号化された値のように比較され、解読されないように設計された一方向の暗号関数です。
したがって、このWebサイトが行ったことは、一連の文字列を取得し、さまざまなアルゴリズムを使用してそれらをハッシュし、ハッシュの値を保存することです。これにより、ハッシュを入力すると、そのハッシュが既に格納されている値と比較され、一見「逆」のように見えます。これが、ハッシュ中に salt を使用することが非常に重要である理由です。