ハッシュ種類識別ツール
ハッシュの形式から種類を判定。bcrypt、Argon2、$6$ SHA-512 crypt、LDAP {SSHA}、Django PBKDF2、MySQL、16 進の長さによる MD5/SHA を hashcat モード付きで識別します。
識別は長さ・文字種・プレフィックスに基づく推測です。同じ長さのダイジェストを出すアルゴリズムは多いため、単なる 16 進文字列を確実に特定することはできません。
ハッシュ識別ツールとは?
ハッシュ文字列を解析し、それを生成した可能性のあるアルゴリズムを、確度のラベルと対応する hashcat モードとともに一覧表示します。$2b$(bcrypt)、$argon2id$、$6$(SHA-512 crypt)、{SSHA}、pbkdf2_sha256$ のような自己記述形式は確実に識別され、単純な 16 進や Base64 のダイジェストは長さで照合されます。
ハッシュ識別ツールの使い方
- 識別するハッシュ にハッシュを貼り付けます。
- 検出された形式と候補の一覧を確認します。可能性の高い順から、単に可能性があるものまで並んでいます。
- hashcat のモードやアルゴリズム名を使って、元のソフトウェアやハッシュジェネレーターで推測を検証します。
例
5d41402abc4b2a76b9719d911017c592
32 hexadecimal characters (128 bits). Possible algorithms: MD5 (most likely, hashcat -m 0), NTLM (most likely, hashcat -m 1000), MD4, MD2, RIPEMD-128, LM
ハッシュ識別ツールを使うべき場面
データベースのダンプ、設定ファイル、CTF の問題でハッシュを見つけ、何で生成されたかを知りたいときに使います。単純な 16 進ダイジェストは、同じ長さのアルゴリズムが多いため確実には識別できません。既知の入力をハッシュして確認してください。このツールはハッシュの解読や復元は行いません。
ハッシュ識別ツールの仕組み
入力はまず、crypt(3)、LDAP、Django、Werkzeug、passlib、phpass、MySQL、MSSQL 形式の約 35 のプレフィックスパターンと照合され、一致すればアルゴリズムが正確に特定されます。それ以外の場合、16 進文字列は長さで分類され(16 進 32 文字 = 128 ビット → MD5、NTLM、MD4…、64 文字 → SHA-256、SHA3-256、BLAKE2s、BLAKE3…)、Base64 文字列はデコード後のバイト長で分類されます。同じ長さのグループの先頭の候補が実際に最も一般的で、他は可能性ありとして列挙されます。
一般的な使用例
- 移行前に、レガシーなデータベースでパスワードがどう保存されているかを調べる
- 許可された監査で正しい hashcat モードを選ぶ
- LDAP の
{SSHA}や/etc/shadowの形式を見分ける - 未知のハッシュから始まる CTF の問題を解く
セキュリティ注意事項
ハッシュはローカルで解析されます。取り扱う権限のあるハッシュだけを解析してください。
よくある質問
複数のアルゴリズムが表示されるのはなぜですか?
多くのハッシュ関数が同じ長さのダイジェストを出力し(MD5、NTLM、MD4 はいずれも 128 ビット)、見た目が同じになるためです。曖昧さがないのは、プレフィックス付きの形式だけです。
アルゴリズムはどう確認できますか?
既知の入力(たとえば設定したパスワード)を、ハッシュジェネレーターで候補のアルゴリズムごとにハッシュ化して比較してください。
ハッシュを復号したり解読したりできますか?
いいえ。ハッシュは一方向です。このツールは形式を識別するだけです。
「確実」とはどういう意味ですか?
bcrypt の $2b$ や salted SHA-1 の {SSHA} のように、ハッシュ自体にアルゴリズムの識別子が含まれていて、曖昧さがないという意味です。