SHA-1 暗号化メッセージから元のメッセージを取得することは可能ですか? SHA -1 で暗号化されたメッセージがある場合、そこから元のメッセージを取得するために必要なすべてのパラメーターは何ですか?
5 に答える
私はすでに同様の質問に答えました: Python SHA1 DECODE function
要するに、それは不可能です。ハッシュの全体的なポイントは、長い文字列を取り、それを小さな文字列に変換することです。ハッシングは破壊的であり、データを失うため、元に戻すことはできません。
また、もっと面白くするために、無限に多くの文字列が同じハッシュ1を持っています。入力に関する詳細情報を把握していない限り、特定のハッシュで一意の文字列を生成することはできません。
1: 多数のハッシュ関数があり、関数に特定の入力を与えた場合にのみ生成される「特別な」ハッシュを持つものもあります。これらのまれなケース (存在する場合) を除いて、他のすべての出力ハッシュには無限に多くの入力文字列があります。
http://en.wikipedia.org/wiki/Cryptographic_hash_function
it is infeasible to generate a message that has a given hash
ハッシュはSHA-1
、任意のサイズの入力から 160 ビットの出力を生成します。可能な出力よりも多くの可能な入力があるため2^160
、衝突が発生することになります。同じ出力を持つ異なる入力。
これは、与えられたハッシュに対応するメッセージを見つけることは可能かもしれませんが (力ずくで、またはアルゴリズムの弱点を悪用することによって — 私が思うに現時点では何も知られていない)、しかしそれは元のメッセージではない可能性があることを意味します。
入力のサイズを固定しても、160 ビットを超えると衝突が発生し、ハッシュ関数を反転する方法がありません。
ハッシュは暗号化ではありません。暗号化は、ジグソー パズルのピースをシャッフルするようなものです。ハッシュは、ピースをブレンダーに入れるようなものです。その後、元の画像を復元する合理的な方法はありません。
元のメッセージの長さが (512 ビットの倍数で) わかっている場合は、そのサイズの 2^512 入力をテストするだけで済みます。それぞれに SHA1 操作を適用し、結果を比較します。これは、ソルティングがなく、かなりの計算リソースがあることを前提としています。