Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
hashes — マジックハッシュ – PHPハッシュの「衝突」 | Kitploit
ツール/GitHubGitHub/spaze/hashes
脆弱性分析ハッシュ分析ウェブセキュリティ暗号化学習と教育厳選リソース
GitHubspaze/hashes

hashes

マジックハッシュ – PHPハッシュの「衝突」

リポジトリを見る
835103671年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

マジックハッシュ – PHPハッシュの「衝突」

パスワード1 で登録し、パスワード2 でサインインしてください。ログインできた場合、そのストレージは指定されたアルゴリズムでパスワードをハッシュ化しており、PHPは == を使用してそれらを比較しています(MD5、SHA-1、平文の場合)。

MD5、SHA-1、SHA-224、SHA-256 など

MD5、SHA-1、SHA-2ファミリー の場合、古くから知られたトリック(実際には文書化された機能です。PHP型比較表 と 浮動小数点数 を参照)を使用します。PHPでは '0e1' == '00e2' == '0' となることを、実用的 な目的で利用しているだけです。リスト内のどのパスワードも、他のどのパスワードとも 一致 します。これは 整数文字列が浮動小数点数にオーバーフローする トリックとは異なります。この2行 の違いに注目してください。

マジックハッシュを持つすべてのアルゴリズムは次のとおりです:

  • CRC32
  • CRC32b
  • FNV-1a/32
  • FNV-1a/64
  • FNV-1/32
  • FNV-1/64
  • HAVAL-128,3
  • HAVAL-128,4
  • HAVAL-128,5
  • HAVAL-160,3
  • HAVAL-160,4
  • HAVAL-160,5
  • JOAAT
  • MD2
  • MD4
  • MD5
  • MD5-double md5(md5(password))
  • MurmurHash3_x86_32/Murmur3a
  • MurmurHash3_x86_128/Murmur3c
  • MurmurHash3_x64_128/Murmur3f
  • PHOTON-80/20/16
  • PHOTON-128/16/16
  • PHOTON-160/36/36
  • Quark u-Quark-136
  • RIPEMD-128
  • RIPEMD-160
  • SHA-1
  • SHA-224
  • SHA-256
  • SPONGENT-88/80/8
  • SPONGENT-88/176/88
  • SPONGENT-128/128/8
  • SPONGENT-128/256/128
  • Tiger/128,3
  • Tiger/128,4
  • Tiger/160,3
  • Tiger/160,4
  • Tiger/192,3
  • xxHash-XXH32
  • xxHash-XXH64
  • xxHash-XXH3_64bits
  • xxHash-XXH3_128bits

@0xb0bb の言葉を引用すると、「マジックハッシュには、パスワード比較以外の用途(キャッシュ層やハッシュ関数の出力から導出されるデータなど)もあり、これらの既知の安全でないアルゴリズムや、あまり知られていないアルゴリズム、擬似ハッシュアルゴリズムは、そのような場面でより簡単に見つけることができます。」

平文

平文 の場合、さまざまな変換トリックを使用します。最初のパスワードは2番目のパスワードとのみ 一致 します。トリックは、それらを可能にするPHPバージョンごとにグループ化されています。

bcrypt

bcrypt はパスワードを最大72文字に切り詰めます。両方のパスワードの最初の72文字が一致する場合、パスワードは 一致 します。

descrypt

descrypt(従来のUNIX DES crypt)はパスワードを最大8文字に切り詰めます。両方のパスワードの最初の8文字が一致する場合も、パスワードは 一致 します。「General cross-check」セクションを参照してください。

PBKDF2-HMAC-SHA1、PBKDF2-HMAC-SHA224、PBKDF2-HMAC-SHA256

64バイトを超えるパスワードを PBKDF2-HMAC-SHA1 でハッシュ化する場合、最初にSHA1で プリハッシュ されます。そのため、sha1(password1) === bin2hex(password2) であれば PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) が成り立ちます。同様の プリハッシュ は PBKDF2-HMAC-SHA224 と PBKDF2-HMAC-SHA256 の場合にも適用されます。

Tiger/192,3

現時点では、Norbert Tihanyi のおかげで、それぞれにマジックハッシュが1つだけあります。将来的にはさらに追加されることを願っています。

結論

PHPで何か*を比較するときは、== ではなく === を使用してください。また、PHPでのパスワードハッシュ化には password_hash() と password_verify() を使用し、MD5やSHA-1は使用しないでください。*ハッシュを比較するときは hash_equals() を使用してください。

歴史

すべてはこのツイートから始まりました。2014年2月に QNKCDZO と 240610708 を生成し、その後、インターネット中に広まりました。ググってみてください。

ツールをダウンロード