web-dev-qa-db-ja.com

既知の入力と出力のみでハッシュアルゴリズムを決定する

入力が与えられた場合:

test

システムは次の出力ハッシュを生成します。

0x001F41B6A0534D3B851D69EFE6237F550100000010D5F4FC65E64BCFDBF2590212E4411C44942C6C734C00ACFE13B958DCAB3614

アルゴリズム、または使用されているソルト(存在する場合)がわかりません。しかし、私は選択した任意の入力をシステムに供給し、代わりにハッシュを受け取ることができます。

上記を前提として、どのハッシュアルゴリズムが使用されているかを判断する方法はありますか?また、塩が使用されているかどうか、使用されている場合、それは何ですか?

4
Nontenda

ソルトが使用されているかどうかを確認するには、ハッシュを同じ値againを使用してみてください(まるで「新しいパスワード」のように)。明確な出力が得られる場合は、いくつかの非決定論(別名「塩」)があります。そうでなければ、塩はありません。

ハッシュメカニズムが秘密であるmeantであり、適切に行われた場合、それは [〜#〜] mac [〜# 〜] そして、入力と出力の分析だけからそれを再構築することはできません。それが適切に行われなかった場合、...何でも起こります。

10
Thomas Pornin

できないと思います。ハッシュは情報を破壊します。また、ラウンド数やフィードバックなどの詳細を決定することもできません...

0
Stone True

作業する必要がある唯一のデータは次のとおりです。

  • 入力データと長さ
  • 出力データと長さ

暗号化ハッシュアルゴリズムは出力で情報を伝達するためのものではないため、概念的には出力データ自体は情報を提供しません。

ここで役立つ唯一の情報ビットは、出力が840ビットであることを示す105桁の16進数である出力データの長さです。

使用されているアルゴリズムを特定できる場合は、データがソルトされているかどうかを特定するための小さな変更がある可能性があります。そうでない場合、チャンスはありません。

これが 暗号化ハッシュアルゴリズムのリスト とそれに対応する出力サイズです。840ビット長のものはありません。

コメントの一部をエコーし​​ます。これは、暗号化されたデータではなく、暗号化ハッシュアルゴリズムの出力のようには見えません。 10000001シーケンスの後のデータは64バイトであり、これは多くのハッシュアルゴリズム、つまりSHA-512の特徴です。

0
Whome