Hash Identifier Tool
Detect likely MD5, SHA, bcrypt, Argon2, CRC32, and checksum formats from a pasted digest.
Analyze hash length, alphabet, prefixes, and encoded password-hash fields. Verify plaintext candidates by generating common hashes locally in your browser.
How Hash Identification Works
A hash identifier checks character count, alphabet, prefixes, separators, and modular crypt fields. These clues often narrow the candidate list quickly.
If you know a possible plaintext, hash it with candidate algorithms and compare exact outputs. This proves a match for that input and algorithm.
Format alone cannot separate every algorithm. SHA-256 and SHA3-256 can both appear as 64 hexadecimal characters.
| Format | Typical Algorithm | Security Note |
|---|---|---|
| 32 hex chars | MD5 | Legacy checksum only; collision-broken. |
| 40 hex chars | SHA-1 or RIPEMD-160 | Ambiguous by length; SHA-1 is collision-broken. |
| 64 hex chars | SHA-256 or SHA3-256 | Common modern 256-bit digest shape. |
| $2b$... | bcrypt | Password hash with salt and work factor. |
| $argon2id$... | Argon2id | Memory-hard password hash format. |
One hexadecimal character carries 4 bits, so the character count is the digest size in bits divided by 4. A length narrows the field; it never proves one algorithm.
| Hex characters | Bits | Candidate algorithms | Note |
|---|---|---|---|
| 8 | 32 | CRC32, Adler-32 | Checksums for accidental errors, not cryptographic hashes. |
| 32 | 128 | MD5, MD4, NTLM, LM | MD5 is the usual guess; NTLM is MD4 of the UTF-16LE password. |
| 40 | 160 | SHA-1, RIPEMD-160 | Git object IDs are SHA-1 by default. |
| 56 | 224 | SHA-224, SHA3-224, SHA-512/224 | Rare in the wild; SHA-224 is the common reading. |
| 64 | 256 | SHA-256, SHA3-256, Keccak-256, BLAKE2s-256, SHA-512/256 | The most ambiguous common length. SHA-256 is the usual guess. |
| 96 | 384 | SHA-384, SHA3-384 | SHA-384 is a truncated SHA-512 variant. |
| 128 | 512 | SHA-512, SHA3-512, BLAKE2b-512, Whirlpool | Several unrelated 512-bit designs share this length. |
Password hashes carry their scheme in the string itself, so a prefix is a much stronger signal than a length. To create one of these, see the bcrypt tool or the Argon2 tool.
| Prefix | Scheme | Structure | Note |
|---|---|---|---|
| $2a$ $2b$ $2y$ | bcrypt | $2b$ + 2-digit cost + $ + 22-char salt + 31-char hash (60 characters total) | The letter marks implementation revisions of the same scheme. |
| $argon2id$ $argon2i$ $argon2d$ | Argon2 | $argon2id$v=19$m=..,t=..,p=..$salt$hash (Base64 without padding) | Memory, time and parallelism costs travel inside the string. |
| $1$ | md5crypt | $1$ + salt of up to 8 chars + $ + 22-char hash | Legacy Unix format; avoid for new systems. |
| $5$ | SHA-256 crypt | $5$ + optional rounds=N$ + salt of up to 16 chars + $ + 43-char hash | glibc-style modular crypt format. |
| $6$ | SHA-512 crypt | $6$ + optional rounds=N$ + salt of up to 16 chars + $ + 86-char hash | Long-time default in many Linux /etc/shadow files. |
| $y$ | yescrypt | $y$ + parameter string + $ + salt + $ + hash | Newer /etc/shadow default on some distributions. |
| $P$ $H$ | phpass | 34 characters: prefix, iteration character, 8-char salt, 22-char hash | WordPress and Drupal style portable hashes. |
| pbkdf2_sha256$ | Django PBKDF2 | algorithm$iterations$salt$Base64 hash | passlib writes the same family as $pbkdf2-sha256$... |
| $scrypt$ | scrypt (passlib) | $scrypt$ln=..,r=..,p=..$salt$hash | Cost parameters ln, r and p are stored in the string. |
| {SHA} | LDAP SHA-1 | {SHA} + Base64 of the 20-byte SHA-1 digest (28 characters) | Unsalted; legacy. |
| * | MySQL 4.1+ | * + 40 uppercase hex characters | SHA-1 of SHA-1 of the password. |
Each digest below is the real output of the named algorithm for the quoted input, using public test inputs such as abc and the empty string. The last line of each example is what this identifier reports for that digest. Compare the SHA-1 and RIPEMD-160 examples, or the SHA-256 and SHA3-256 examples: same input, same length, different digests, and the identifier cannot tell which is which. You can generate any of them yourself with the SHA generator or the MD5 generator. The Verify tab computes the SHA-2, MD5, SHA-1 and RIPEMD-160 digests in the browser; its SHA3 option is Keccak-256, so the SHA3-256 line below is not reproducible there.
MD5 of the empty string
- Digest (32 hex characters)
- d41d8cd98f00b204e9800998ecf8427e
- Identifier reports
- MD5 (High), NTLM or MD4 (Low)
The MD5 of empty input. Seeing it in a database means an empty value was hashed.
MD5 of "abc"
- Digest (32 hex characters)
- 900150983cd24fb0d6963f7d28e17f72
- Identifier reports
- MD5 (High), NTLM or MD4 (Low)
The RFC 1321 test vector for abc. Its 32 hex characters match the NTLM/MD4 shape too.
SHA-1 of "abc"
- Digest (40 hex characters)
- a9993e364706816aba3e25717850c26c9cd0d89d
- Identifier reports
- SHA-1 (High), RIPEMD-160 (Medium)
The FIPS 180 test vector for abc. RIPEMD-160 also produces 40 hex characters.
RIPEMD-160 of "abc"
- Digest (40 hex characters)
- 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
- Identifier reports
- SHA-1 (High), RIPEMD-160 (Medium)
Same input, same length as the SHA-1 line above, a completely different digest. Length alone cannot tell them apart.
SHA-224 of "abc"
- Digest (56 hex characters)
- 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7
- Identifier reports
- SHA-224 (High)
The FIPS 180 test vector for abc: 56 hex characters.
SHA-256 of "abc"
- Digest (64 hex characters)
- ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
- Identifier reports
- SHA-256 (High), SHA-3-256 or Keccak-256 (Medium), BLAKE2s-256 (Low)
The FIPS 180 test vector for abc: 64 hex characters.
SHA3-256 of "abc"
- Digest (64 hex characters)
- 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532
- Identifier reports
- SHA-256 (High), SHA-3-256 or Keccak-256 (Medium), BLAKE2s-256 (Low)
Same input and length as the SHA-256 line, a different digest: the tool lists SHA-256 first only because it is the most common 64-character guess.
SHA-256 of the empty string
- Digest (64 hex characters)
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
- Identifier reports
- SHA-256 (High), SHA-3-256 or Keccak-256 (Medium), BLAKE2s-256 (Low)
The SHA-256 of empty input, which appears in many empty-file checksums.
SHA-384 of "abc"
- Digest (96 hex characters)
- cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
- Identifier reports
- SHA-384 (High)
96 hex characters.
SHA-512 of "abc"
- Digest (128 hex characters)
- ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
- Identifier reports
- SHA-512 (High)
128 hex characters.
CRC32 of "abc"
- Digest (8 hex characters)
- 352441c2
- Identifier reports
- CRC32 (Medium), Adler-32 (Medium)
The standard CRC-32 (IEEE 802.3) of abc: 8 hex characters. A checksum, not a cryptographic hash.
Adler-32 of "abc"
- Digest (8 hex characters)
- 024d0127
- Identifier reports
- CRC32 (Medium), Adler-32 (Medium)
Adler-32 of abc, as used by zlib. Same 8-character shape as CRC32.
What this has not tested: the identifier reads structure only. It does not know whether a value was salted, truncated, re-encoded or produced by a custom scheme, and a value that happens to match a pattern is a candidate, not a finding.
A hash function is a deterministic algorithm that maps input data to a fixed-size digest.
A checksum is a compact error-detection value used to catch accidental data corruption.
A password hash is a salted, deliberately expensive hash format designed to slow password guessing.
History and Use Cases
Early internet systems used MD4, MD5, and SHA-1 for compact message fingerprints. Collision research later showed MD5 and SHA-1 were unsafe for digital signatures and certificates.
Modern systems typically use SHA-2 or SHA-3 for general-purpose integrity, while passwords should use slow, salted schemes such as bcrypt or Argon2.
- Identify an unknown digest found in logs, databases, or challenge material.
- Check whether a downloaded checksum looks like MD5, SHA-1, SHA-256, or SHA-512.
- Distinguish fast checksums from password-hash formats with salts and parameters.
- Verify an exact plaintext candidate against common digest algorithms.
Hash Identifier FAQ
Why Use This Hash Identifier?
Private
Identification and verification run in your browser. Inputs are not sent to a server.
Fast
Get instant candidates from format checks and generate common digests as you type.
Actionable
Use confidence labels and security notes to choose the next verification step.