'これらのMD5ハッシュの違いは何ですか?

この形式の違いは何ですか:

Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0 

以下:

5f4dcc3b5aa765d61d8327deb882cf99 

また、

最初のハッシュ形式を2番目のハッシュ形式に変換する方法

ありがとうございます

コメント

  • 最初の例が単なるハッシュではないかと思います。ユーザー名が明確に、場合によっては他の情報に含まれているようです。 。どこで入手しましたか?クリアテキストの値を知らずに再ハッシュすることは実際には不可能です。
  • それは'私が'私も疑問に思っています。しかし、Kali Linuxを使用してルーターでroutersploitを実行した後、出力には> > Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0。同様のケースもここで見つかりましたリンク

回答

最初の例はシャドウファイルフォームのように見えますで: ID adminアルゴリズム1 = MD5)(なし)ハッシュoLN1UCc1Y3T30QkMcKMSx0)、 Base64形式のように見えるハッシュを使用します。

2番目(5f4dcc3b5aa765d61d8327deb882cf99)は、MD5ハッシュと一致する128ビットの16進文字列のようです。

ただし、両方をバイナリ&に変換してから反対の形式に戻すと、2つのハッシュが一致しません。

  • ハッシュ文字列(5f4dcc3b5aa765d61d8327deb882cf99)で表されるバイナリ値のBase64はX03MO1qnZdYdgyfeuILPmQです。

  • 逆に、base64ハッシュの16進文字列(oLN1UCc1Y3T30QkMcKMSx0)はa0b3755027356374f7d1090c70a312c7です。

     ------- Edit ----- 

As user1686 は、次のように指摘しています。 oLN1UCc1Y3T30QkMcKMSx0 はMD5cryptであり、MD5の1000ラウンドであり、各ラウンドに追加があります。 これらのハッシュが両方とも実際に同じパスワードからのものである場合、ストレートMD5ハッシュを同等のものに変換できるはずです。 MD5Cryptの最初のMD5計算をバイパスし、パスワードの代わりにハッシュをフィードすることにより、MD5Cryptを無塩にします。

回答

最後の$の後の部分はbase64でエンコードされます。これは、バイナリデータを一般的な印刷可能な文字(ASCII制御コードや上位ビットを必要とするものではない)として表すためのかなりコンパクトな方法です(4文字が3バイトになります)。 2番目のハッシュは単純に16進数でエンコードされているため、効率は低くなりますが(4文字が2バイトになります)、特にプログラマー(常に16進数を使用する)にとっては読みやすくなります。

編集:さらに、最初のハッシュアルゴリズムはほぼ確実にmd5 crypt です。これは、いくつかの追加作業が行われた反復MD5です。したがって、特定の入力に対してベースMD5と同じ出力を生成することはありません。実際、そうではないことがわかります。その後の最後の$を16進数に変換すると、a0b3755027356374f7d1090c70a312c7が出力されます。少なくとも部分的には)md5cryptがカスタムbase64を使用していると思うためです。これは、通常のbase64と同じ文字の順序が異なります。

最初のハッシュは、/ etc / shadowパスワード形式の例です。 $1はMD5cryptを意味し、次の2つの$文字の間に何もないということは無塩であることを意味します。 2番目のそのような情報はありません。ソルト化されるか、異なるパスワード、異なるハッシュアルゴリズム、またはその両方である可能性があります。ただし、md5cryptよりも裸のMD5である可能性が高いです。

MD5とmd5cryptの違いを反映するように編集されています

コメント

  • 'が無塩であっても、$ 1 $はMD5だけではありません-' ■ md5crypt 。これには、他の調味料を追加した1000ラウンドのMD5が含まれます。
  • 2番目のハッシュはmd5(' password ')。echo -n 'password' | md5sum5f4dcc3b5aa765d61d8327deb882cf99

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です