When you encounter an unfamiliar string of characters during a penetration test or a CTF challenge, the first question is always: what type of hash is this? Identifying the hash type determines which cracking tool to use, what attack vectors apply, and how much effort it will take to reverse it.
This guide shows you how to identify 40+ hash types by analyzing their length, character set, and prefix patterns using the Hash Identifier from SecuriTool โ all in your browser, no data sent to any server.
Open the Hash Identifier in another tab while you read:
Hash Identifier โHash identification relies on three characteristics:
| Clue | What It Tells You | Example |
|---|---|---|
| Length | Number of characters in the hex/base64 string | 32 chars โ MD4/MD5/NTLM |
| Character set | Hex (0-9a-f), Base64 (A-Za-z0-9+/), or custom | Hex 40 chars โ SHA-1 |
| Prefix / Format | Special markers like $2y$, $6$, {SSHA} | $2y$ โ bcrypt |
The Hash Identifier applies pattern matching across all three dimensions and returns a confidence score for each possible match.
Go to the Hash Identifier page. Paste your unknown string into the text area and click Identify.
The tool processes everything client-side โ your hash never leaves your browser.
The output lists possible matches sorted by confidence score, with a visual progress bar:
โ bcrypt (60 chars) โโโโโโโโโโ 86% Unix SHA-512 (crypt) (106 chars) โโโโโโโโโโ 62% SHA-512 (128 chars) โโโโโโโโโโ 50%
The arrow marks the best match. The percentage reflects how well the hash matches all detection criteria (length, regex pattern, and prefix).
Hash length is the fastest way to narrow down possibilities. Here is a quick reference:
| Length (hex) | Likely Hash Types | Use Case |
|---|---|---|
8 | CRC32, Adler32 | Checksums, error detection |
16 | MySQL โค 4.1 | Legacy MySQL password hashes |
32 | MD4, MD5, NTLM, LM, RIPEMD-128 | Legacy auth, Windows passwords |
40 | SHA-1, RIPEMD-160, PBKDF2-HMAC-SHA1 | Git commits, SSL certs, legacy APIs |
56 | SHA-224, SHA3-224, SHA-512/224 | FIPS compliance, blockchain |
64 | SHA-256, SHA3-256, RIPEMD-256, GOST 256, PBKDF2-HMAC-SHA256 | Modern applications, TLS, Bitcoin |
96 | SHA-384, SHA3-384 | High-security, gov standards |
128 | SHA-512, SHA3-512, Whirlpool, GOST 512 | Maximum security, DNSSEC |
Password hashing algorithms use distinctive prefixes that make them instantly recognizable:
| Prefix | Hash Type | Format Example |
|---|---|---|
$2y$, $2a$, $2b$ | bcrypt | $2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy |
$6$ | Unix SHA-512 crypt | $6$rounds=1000$salt$hash |
$5$ | Unix SHA-256 crypt | $5$rounds=5000$salt$hash |
$1$ | Unix MD5 crypt | $1$salt$hash |
$argon2 | Argon2 | $argon2id$v=19$m=65536,t=3,p=4$...$... |
$SHA$ | bcrypt (SHA-256 variant) | $SHA$salt$hash |
scrypt: | scrypt | scrypt:16384:8:1$...$... |
* (leading asterisk) | MySQL 5+ | *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 |
0x | Ethereum address | 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18 |
Let us identify this hash:
$2y$12$LJ3m4ys3Lk0TSwHnbfOMiOXPm1Qm0M0v0M.0M0M0M0M0M0M0M0M0M0
Step 1: Length is 60 characters โ too short for SHA-512 (128), too long for MD5 (32).
Step 2: Contains $2y$ prefix followed by two cost digits 12$.
Step 3: Uses A-Za-z0-9./ character set (Base64 variant).
Result: bcrypt with cost factor 12. Used by most modern web frameworks for password storage (Rails, Django, Node.js, PHP).
Password hashes (modern):
$2y$10$... โ bcrypt ยท $argon2id$... โ Argon2id ยท $6$... โ SHA-512 crypt
Windows authentication:
32-char hex โ NTLM (aad3b435b51404eeaad3b435b51404ee)
32-char uppercase hex โ LM hash
Web frameworks:
32-char hex โ MD5 (WordPress, Joomla, vBulletin legacy)
40-char hex โ SHA-1 (GitHub, Docker hub)
Blockchain / Crypto:
64-char hex โ SHA-256 (Bitcoin)
1 or 3 followed by 25-34 chars โ Bitcoin address
0x + 40 hex โ Ethereum address
Some hash lengths map to multiple types. A 32-character hex string could be MD4, MD5, NTLM, LM, or RIPEMD-128. Here is how to disambiguate:
/etc/shadow (old), WordPress, and Joomla.The Hash Identifier handles overlapping cases by scoring multiple factors: exact length match, regex pattern match, and a bonus for combined matching. The highest score is your best guess.
Hash identification is pattern-based, so there are limitations:
Always combine tool output with contextual knowledge: Where did you find the hash? What system generated it? What format does the application expect?
Hash identification is a fundamental skill for security researchers, penetration testers, and CTF players. By analyzing length, prefix, and character set, you can narrow down 40+ hash types in seconds.
The Hash Identifier gives you an instant, client-side match with confidence scoring โ no data leaves your machine, no terminal commands needed.
Try it with your own hashes:
Identify any hash:
Hash Identifier โPublished May 28, 2026 ยท Practical Guide ยท SecuriTool