2017-06-01 9 views
0

私はちょうどPythonでいくつかのコードを使いこなしていましたが、パスワードが何であるかを知ることは難しくありませんでした。 md5(基本的にはブルートフォース攻撃で、md5を入力し、何百万ものパスワードを使ってmd5に変換し、一致するかどうかを確認してからパスワードを出力します)。私はいくつかの掘り出しを行い、私が見つけたのは、ランダムに生成されたパスワードのmd5ハッシュを使用して、それに対応するパスワードを見つける人々のビデオでした。元のパスワードを持たずにパスワードのmd5ハッシュを見つける方法があれば私は疑問に思っていました。何-If THXパスワードのmd5ハッシュが実際に元のパスワードを持たずに見つかる可能性があります

は、元のパスワードことを提供し、ちょうどあなたが力ずくことができ、元のパスワードを取得するためにMD5ハッシュを正しいだコメントで教えてください、私は

+1

あなたはコードを表示していないので、Pythonには何の関係もありません。はい、それは不明です。 ind md5ハッシュ?どこ? –

答えて

2

それをクリーンアップします不明ですブルートフォースはの値にハッシュを試みます。これを補うために、パスワードシステムは「塩」として知られているものを使用して、これを大幅に難しくしていることがよくあります。 (参考:What is SALT and how do i use it?

あなたの質問に対する答えは一般的にいいえ、その値を最初に持たずに一部の値のハッシュを取得する簡単な方法はありません。

元来、ハッシュアルゴリズムは、入力を受け取り、操作してアルゴリズムの出力を値のテーブルへのインデックスとして使用できるように設計されていました。目標は1:1のハッシュを持つことです(理想的には非常に速く、うまくいけば一定の時間です)。これは、入力値がxの場合、y = hash(x)は、xハッシュ値がyになるようにする必要があることを意味します。言い換えれば、y1 = hash(x1) = hash(x)の場合は、x1 = xの場合のみです。

時間が経過すると、他の特性を持つアルゴリズムが開発されました。パスワードの保存やクイック比較などのアルゴリズムにハッシュアルゴリズムを使用するのが一般的になって以来、ハッシュアルゴリズムで評価されたことの1つは、入力に対する小さな変化が出力の差につながることです。言い換えれば、は、xが完全に変更された場合(not(x)の場合のように)、または1ビットだけ変更された場合に変更されるはずです。

あなたが本当に唯一の上位をチェックする必要があるので、一つの帰結は、(あなたが単一のビットを変更したときにhash(x)が(大幅を変更した場合hash(x+0x000001)の場合のように、それは比較関数を作る、というはるかに高速ですこれは、単純にハッシュを反復することで(つまり、関数hash(x)のハッシュ出力を「推測」することによって)単純に連続したアイテムのハッシュを計算することができないことを意味しますx)。

関連する問題