ハッシュ識別ツール — コマンドラインによるパスワードハッシュの識別 – Darknet – Hacking Tools, Hacker News & Cyber Security

現在の位置: Home / Cryptography / ハッシュ識別ツール — コマンドラインによるパスワードハッシュの識別

今回、hashID 3.1.4とName-That-Hash 1.11.0を同じハッシュサンプルに対してテストしました。両ツールとも$2a$のbcryptは認識しましたが、それ以外はまったく同一の$2b$サンプルは認識できませんでした。Argon2idのサンプルを認識できたのはName-That-Hashのみでした。

Image

両ツールはいずれもpip経由でインストールし、2026年9月6日にテストを実施しました。

他に知っておく価値のある2つのツール、haitiとhashcatについては、代替手段として末尾で触れます。これらは実際には実行しておらず、その旨は該当箇所で明記しています。

形式は違っても、見た目は同じ16進数

まずは単語passwordのMD5ハッシュ、つまり32文字の裸の16進数文字列から見ていきましょう。hashIDにこれが何であるか尋ねると、18種類の候補が返ってきます。Name-That-Hashに尋ねると24種類返ってきます。どちらも正しいと言えます。

MD5、NTLM、LM、MD4、Domain Cached Credentials形式、その他十数種類のフォーマットは、いずれも正確に128ビットの16進数を生成し、文字列自体からはそれらを区別する手がかりが一切得られません。

具体例を挙げましょう。空のLMハッシュ定数aad3b435b51404eeaad3b435b51404ee——LMハッシュが空のときにWindowsの認証情報ダンプのLMフィールドを埋める値です——は、両ツールから同じ、形の定まらない候補リストを返され、その先頭にはMD5とNTLMが並びます。

両ツールとも、このサンプルを空のLM定数として特定することはなく、候補リストを返すにとどまりました。一般的な16進数フォーマットについては、識別ツールは候補を絞り込むところまでで、最終的な判断はユーザーに委ねられるのです。

そのハッシュがどのシステムで生成され、どのファイルに存在していたかという由来の情報こそが、文字列だけでは解決できない問いに答えを与えてくれます。だからこそ識別ツールは、自己記述的なプレフィックスを持つフォーマットでこそ真価を発揮するのであり、まさにそこで両ツールの差が現れ始めます。

2026年、両ツールに共通する死角

bcryptハッシュにはバージョンを示すプレフィックスが付いています。両ツールに従来型の$2a$形式のbcryptハッシュを与えると、どちらも正しく識別できました——hashIDはbcryptと2つの別名を並べて提示し、Name-That-Hashも同様の結果を返しました。ところが、プレフィックスのabに変えて$2b$とし、それ以外はすべて同一のままにすると次のようになります。

$hashid‘$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy’

[+]Unknown hash

$ntht‘$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy’

No hashes found.

両ツールとも失敗しました。$2b$は決してマイナーな亜種ではありません。現在も保守されているPythonのbcryptライブラリはデフォルトで$2b$を生成するため、呼び出し側がプレフィックスを明示的に上書きしない限り、今日このパスを通してハッシュ化されたパスワードはこの形式になります。

いずれもpipコマンド一つでインストールできる2種類の識別ツールでありながら、どちらも現行のbcryptプレフィックスを認識できない一方、古い$2a$は両方とも扱えるという結果です。

なお、ここで報告しているbcryptの結果は60文字のサンプルによるものであり、先に挙げた不完全な形のサンプルは除外しています。

2つの識別ツールの分かれ目</h2

両ツールが袂を分かつのはArgon2です。これはPassword Hashing Competitionで優勝したアルゴリズムであり、現行のガイダンスでも新規のパスワード保存方式として真っ先に名前が挙がるものです。Argon2idの文字列を与えると、hashIDはUnknown hashを返しますが、Name-That-HashはArgon2idと正しく返します。これが両ツールの能力差として最も明確に表れた点です。

hashIDのパターンテーブルは2015年以降更新されていません。今回のテストでは$2b$とArgon2idの両方を見逃しましたが、Name-That-HashはArgon2idは認識したものの、$2b$の見逃しは共通していました。

$2b$というプレフィックスは2014年に登場しており、hashIDが2015年3月にリリースされる以前のものです。つまりこれは、hashIDが後から取りこぼしたギャップではなく、そもそも一度もカバーされたことのない部分ということになります。一方、Argon2idはhashIDのリリース後に登場したものであり、更新の止まったパターンテーブルこそが、この見逃しの分かりやすい理由と言えるでしょう。

MD5サンプルについても、Name-That-Hashはより長いリスト(24種類、hashIDは18種類)を返しました。もっとも、これは1つの入力結果に過ぎず、両ツールのルールを網羅的に調べたものではありません。それでも両者を比べれば、この点についてはName-That-Hashの方がより多くの情報を備えていると言えます。ただし、保守が続いているからといって網羅性が保証されるわけではなく、$2b$の見逃しは両ツールに共通する弱点です。

その他の保守されている選択肢(今回は未検証)

他にも知っておく価値のあるツールが2つあります。いずれも、Rubyの実行環境もhashcatのビルドも用意されていなかった今回の環境では実行できませんでした。したがって以下の内容は、実際のテスト結果ではなく、それぞれのドキュメントとソースコードから得た情報である点にご留意ください。上記2ツールの結果と並べて評価できるものではなく、あくまで参考情報として読んでいただければと思います。

haitiはRubyで書かれた識別ツールで、現在も活発に開発が続けられており、2026年初頭にはv4がリリースされ、最近もコミットが続いています。ドキュメントによれば、この特徴は各候補と並んで対応するhashcatおよびJohn the Ripperの参照情報を返してくれる点にあり、識別がクラッキングへの一歩である場合に欲しい情報と言えるでしょう。

haitiはpipではなくgemとしてインストールします。今回両ツールが失敗した$2b$という壁をhaitiがクリアできるかどうかについては、実際に動かしていない以上、断言は控えます。

そして、次のステップがクラッキングであるなら、そもそも識別に別のツールを用意する必要すらないかもしれません。hashcatには--identifyというオプションがあり、公式の使用説明にも、入力されたハッシュに対応するすべてのアルゴリズムを表示するものだと記載されています。

hashcatに直接尋ねることで、識別ツールが付ける名称とhashcatのモード番号との間の変換作業が一つ省けます。このオプションはhashcatのソースコードに記載されている内容であり、今回筆者自身は実行していません。

実際にはどれを使うべきか

Darknetが2017年にhashIDを取り上げた際、その記事内ですでに「2015年以降更新されていない」と指摘していました。今回の比較で問うたのは、保守が続く識別ツールに乗り換えれば、そのギャップは解消されるのかという点です。少なくとも$2b$に関しては、解消されていません。

すでに背景情報のあるハッシュをざっと確認したいだけなら、pipでインストールできるどちらの識別ツールを使っても問題ありません。中でもName-That-Hashの方がより多くの情報を備えており、より新しいフォーマットにも対応し、なお保守も続いています。ただしhashIDの限界は念頭に置いておくべきで、当サイトのhashIDを詳しく検証した記事で、2015年時点で更新が止まったことによる限界の全容を解説しています。

これからクラッキングに取り組むのであれば、対象のハッシュの識別はhashcat自身に任せるのが得策です。そして、識別作業が日常的なワークフローの一部になっているなら、haitiのクラッカー参照情報という付加価値は、gemを一つインストールする手間に見合うものと言えるでしょう。

テスト実施日は2026年9月6日。hashID v3.1.4とName-That-Hash 1.11.0を固定のハッシュセットに対して実行しました。haitiとhashcatは今回の環境では実行しておらず、それらの挙動については前述の通り、ドキュメントとソースコードからの引用です。

Advertisement

Discover more

Security best practices

computer-security

Dark web guide

翻訳元: https://www.darknet.org.uk/2026/09/hash-identifier-tools-command-line-password-hash-identification/

本記事は darknet.org.uk の記事を翻訳・要約したものです。