Hash Identifier
Identify hash types by length and character set — detects MD5, SHA, bcrypt, and 20+ more.
How hash identification works
Hash algorithms produce output of a fixed length and character set. By analyzing the length (in hex digits) and the character set (pure hex vs. mixed case vs. special prefixes like $2y$ for bcrypt), it's often possible to narrow down the algorithm. Many hashes of the same length are indistinguishable from each other — for example, MD5, RIPEMD-128, and NTLM all produce 32 hex characters.
To generate hashes, use the Hash Generator. To check password strength, see Password Strength Checker.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Narrowing down what a digest found in a database dump or a config file might be, before choosing a tool.
- Recognising a bcrypt or PBKDF2 string by its prefix during an audit.
- Ruling out algorithms whose output length does not match what you are looking at.
- Working out which of several candidates to try first in a CTF challenge.
- Confirming that a value which looks like a hash is actually the wrong length for any of them.
Frequently Asked Questions
- How can a hash be identified at all?
- Only by shape: length, alphabet, and any prefix. A 32-character hex string is 128 bits, a 40 is 160, a 64 is 256. That narrows the field but never settles it — the digest itself is indistinguishable from random data, by design.
- Why are several algorithms listed for one hash?
- Because they genuinely cannot be told apart. MD5 and RIPEMD-128 are both 128-bit hex; SHA-1 and RIPEMD-160 are both 160; SHA-256, SHA3-256 and SHA-512/256 are all 64 hex characters. Only knowing which system produced it can decide between them.
- What makes some formats unambiguous?
- A prefix. Modern password hashes carry their own identifier — `$2b$` for bcrypt, `$argon2id$`, `$6$` for SHA-512 crypt, `$1$` for MD5 crypt — followed by cost parameters and the salt. These are Modular Crypt Format strings, and they are self-describing on purpose.
- Does identifying a hash help me reverse it?
- No. A cryptographic hash is one-way; the only attack is guessing an input and hashing it. What identification buys you is knowing *which* algorithm to guess against — and whether it is a fast one (MD5, SHA-1) or deliberately slow (bcrypt, scrypt, Argon2).
- Why does a length not always divide by 8?
- Because you may be looking at Base64 rather than hex — 44 characters ending in `=` is a Base64-encoded 256-bit digest, not a 44-bit one. Check the alphabet before the length: hex is 0-9a-f only, Base64 adds the rest of the alphabet plus `+/=`.
- Can a hash be identified with certainty from its length?
- No. Length narrows the field but does not settle it — a 32-character hex string could be MD5, NTLM, or a truncated anything. Only surrounding context, such as a `$1$` prefix or the system it came from, is conclusive.
Common errors and gotchas
- Treating the result as certain. Length and alphabet narrow the field; they cannot single out one algorithm.
- Assuming identification helps you reverse it. Knowing the algorithm tells you what to try, not what the input was.
- Overlooking prefixed formats, which are self-describing and should be read rather than guessed at.
- Forgetting a digest may be encoded rather than hex, which changes the length and defeats a length-based guess.
- Ignoring the possibility of double hashing or a salt, neither of which changes the length but both of which change the answer.
Related Cryptography & Security tools
Password Generator
Generate strong, random passwords locally.
Hash Generator
Generate MD5, SHA-1, SHA-256, and SHA-512 hashes locally.
JWT Decoder
Decode JSON Web Tokens instantly and offline.
Bcrypt Generator
Generate and verify Bcrypt hashes with custom salt rounds.
MD5 Hash Generator
Generate an MD5 hash from any text.
SHA-1 Hash Generator
Generate a SHA-1 hash from any text.
SHA-256 Hash Generator
Generate a SHA-256 hash from any text.
SHA-512 Hash Generator
Generate a SHA-512 hash from any text.