1

これは一種の非常に基本的な質問です。これに関するヘルプを検索しましたが、具体的な答えが見つかりませんでした。したがって、私はここで具体的に尋ねています。

ユースケースは、利用可能なハッシュのリストを参照して脆弱なパスワードを見つけたいです。そのためには、既知の/一般的な各単語のハッシュを使用可能なハッシュと比較する必要があります。これはすべて、openssl/blowfish.h を使用して C++ for Unix で実行されます。

ただし、この推測ワードのハッシュを作成するには、パスワード ハッシュに使用されたものと同じソルトを使用して生成する必要があります。

ここでの私の質問は、パスワード ハッシュからソルトを抽出する方法です。以下が私のハッシュであるとします。

$2a$10$FTx8T5QrEbxYVe.NJ6iOhuei.V9qgl60xF8/8s7iZRDIlOl.ibDEW

この中の塩は何ですか?またはどうすれば目標を達成できますか?どんなポインタでも素晴らしいでしょう!!

前もって感謝します。

4

3 に答える 3

2

パスワードハッシュをソルトとして渡すだけです。それ自体を抽出するのに十分スマートです。これはcrypt()

Unix、Mac OS、および Windowsでのパスワードのしくみ ( Modern Unix および "BSD スタイルの" ハッシング)を参照してください。

注: のsaltパラメータはcrypt()ソルトではありません。です$algorithm$salt$MORESALTsomethingので、自分で塩抜きをしてはいけません。--salt歴史的 (DES 時代) の理由で呼び出されます。

crypt/blowfish が 2 つの異なるソルトで同じハッシュを生成するのはなぜですか?も参照してください。

于 2011-08-25T07:10:08.030 に答える
1

パスワード ハッシュ関数の「salt」がパスワードと連結され、結果の文字列がハッシュされます。ソルトを取り戻すには、ハッシュされた文字列を取り戻す必要があることを意味します。明らかに、これには 2 つの大きな問題があります。

  1. そのハッシュされた文字列を取り戻すことができれば、プレーンテキストのパスワードも含まれます。これは、ハッシュ関数の主要なセキュリティ上の失敗です。
  2. また、連結された文字列のどの部分がソルトで、どの部分がパスワードであるかを把握する必要があります。
于 2011-08-25T08:40:24.923 に答える
0

それが塩のポイントではありませんか?それが何かわからないってこと?では、あなたが今やろうとしていることに誰も来られないのですか?

私が塩を理解する方法はこれです:

  • 文字列があります。それを と呼びましょうpassword
  • そして、文字列を取得してそこからハッシュを生成するアルゴリズムがあります。呼びましょうblowfish
    • それは正しいですか?フグはハッシュアルゴリズムですか? 私はそうは思わない!!!。
    • アルゴリズムを と呼びましょうmd5
  • md5のハッシュを生成しますがpassword、常に同じものを生成します
  • あなたには悪い男がいます。彼を呼びましょうMrun
  • Mrun辞書にある一連の既知のパスワードでpasswordテストして、を見つけようとしますmd5
  • だけを使用するのではなく、password代わりpassword + saltに を使用することで、別のハッシュが生成され、失敗しMrunます。

ソルトを見つける必要がある場合は、パスワードとハッシュの既知の組み合わせが少なくとも 1 つ必要です。次に、ブルート フォースを使用してソルトを把握することができます。幸運を。ああ、あなたがここで悪いことをしていないことを願っています。ああ、残りの邪悪な存在も無知であることを願っています...

于 2011-08-25T07:06:04.657 に答える