ssecutils

🔎 Hash Identifier

ハッシュ文字列を貼り付けると、長さ・文字種・接頭辞から種類(MD5 / SHA系 / bcrypt / Argon2 / NTLM など)を確度つきで推定します。CTF やインシデント調査の切り分けに。 判定はすべてブラウザ内で行われ、入力データはサーバーに送信されません。

例:
文字種: 16進数 (hex)長さ: 32ビット長: 128bit確度: 中
  1. 1MD5最有力
  2. 2NTLM (Windows)
  3. 3MD4
  4. 4LM hash
  5. 5RIPEMD-128
  6. 6MD2

MD5・NTLM・LM・MD4 は同じ32桁16進で、形式だけでは区別できません。生成元(Windowsアカウント=NTLM、一般的なハッシュ=MD5)など文脈で判断します。

💡 ハッシュ種別の見分け方

  • 桁数(ビット長)が最大の手がかり: 16進で 32桁=128bit(MD5系)、40桁=160bit(SHA-1系)、64桁=256bit(SHA-256系)、128桁=512bit(SHA-512系)。
  • 形式が同じものは区別できない: MD5・NTLM・LM・MD4 はすべて32桁16進です。どこから取得したか(Windowsの認証情報なら NTLM など)で判断します。
  • 接頭辞があれば確実: $2y$=bcrypt、$argon2id$=Argon2、$6$=sha512crypt、$1$=md5crypt、$P$=phpass(WordPress)。これらはソルトとパラメータを内包します。
  • これは推定です: 文字列の形だけで100%の特定はできません。パスワード保存には MD5/SHA-1 単体ではなく、bcrypt / Argon2 / scrypt などソルト付きの遅いハッシュを使ってください。
使い方と解説

ハッシュ文字列の種類を推定する

Hash Identifier は、ハッシュ値の長さ・文字種・接頭辞から、MD5・SHA-1・SHA-256・SHA-512・bcrypt・Argon2・NTLM・sha512crypt などの候補を確度つきで推定するツールです。CTF やインシデント調査で「これは何のハッシュか」を素早く切り分けるのに使えます。

入力データの扱い

判定はブラウザ内で完結し、入力したハッシュ文字列はサーバーへ送信されません。

桁数と接頭辞から候補を絞る

16進ハッシュは桁数(ビット長)が大きな手がかりになります。32桁=128bit(MD5系)、40桁=160bit(SHA-1系)、64桁=256bit(SHA-256系)、128桁=512bit(SHA-512系)です。$2y$ や $6$、$argon2id$ のような接頭辞があれば、bcrypt・sha512crypt・Argon2 などを確実に特定できます。

区別できないものは併記する

MD5・NTLM・LM・MD4 はすべて32桁16進で、文字列の形だけでは区別できません。本ツールは候補を確度つきで併記し、取得元(Windowsの認証情報なら NTLM など)から判断できるよう注記します。あくまで推定であり、100%の特定はできない点に注意してください。

推定できるものと、できないものの線引き

このツールを作るうえで一番気を使ったのが、断定してよい範囲の線引きです。接頭辞がある形式は確実に特定できます。$2y$ で始まればbcrypt、$argon2id$ ならArgon2id、$6$ ならsha512crypt、というように仕様で決まっているからです。一方で接頭辞のない生の16進文字列は、桁数から候補を絞ることしかできません。たとえば password のMD5は 5f4dcc3b5aa765d61d8327deb882cf99 ですが、同じ32桁16進にはNTLMもLMもMD4も該当し、文字列を眺めても判別する手がかりはありません。ここで1つに断定してしまうと、パスワード解析の方向性を誤らせます。そのため本ツールは、区別できないケースでは候補を確度つきで併記し、取得元から判断してもらう方針にしています。ハッシュがどこから出てきたか(Windowsの認証情報か、Webアプリのデータベースか)という文脈が、実際には最も強い手がかりです。

Hash Identifier でできること

  • 長さ・文字種・接頭辞から候補を推定
  • bcrypt / Argon2 / sha512crypt 等は確定的に判定
  • 確度(高・中・低)と注記つきで表示
関連ツール

次に使うツール

作業の流れに近いツールへすぐ移動できます。

解説記事

このツールに関連する解説記事

すべての記事 →