How to use the hash identifier
- Copy the hash string you want to identify.
- Paste it into the Hash string field above.
- The hash identifier immediately lists matching algorithms ranked by likelihood.
- Review the notes column for details about each candidate.
How the hash identifier works
A hash identifier determines the algorithm by examining three properties of the input string: its length, its character set and any structural prefix. For example, a 32-character string containing only hexadecimal digits (0 through 9 and a through f) is almost certainly an MD5 digest. A 64-character hex string points to SHA-256, while a 128-character hex string suggests SHA-512.
Prefixed hashes are even easier to classify. Strings starting with $2a$, $2b$ or $2y$ are bcrypt hashes. Those beginning with $argon2i$ or $argon2id$ use the Argon2 key derivation function. MySQL 4.1 and later stores password hashes with a leading asterisk (*) followed by 40 uppercase hex characters. The tool checks these patterns and lists up to the six most likely candidates, ranked by confidence, so you can evaluate the context yourself.
Common hash lengths reference
The table below lists standard output sizes for widely used hash functions. Length alone is not always enough to distinguish between algorithms that share the same digest size, but it narrows the field considerably.
| Algorithm | Digest length (hex chars) | Bits |
|---|---|---|
| CRC32 | 8 | 32 |
| Adler-32 | 8 | 32 |
| MD5 | 32 | 128 |
| SHA-1 | 40 | 160 |
| RIPEMD-160 | 40 | 160 |
| SHA-224 | 56 | 224 |
| SHA-256 | 64 | 256 |
| SHA-384 | 96 | 384 |
| SHA-512 | 128 | 512 |
| SHA3-256 | 64 | 256 |
| SHA3-512 | 128 | 512 |
Note that SHA-256 and SHA3-256 both produce 64 hex characters. When you encounter a 64-character hex string, additional context such as the application or system that generated it is needed to tell them apart. You can generate test values with the sha256 hash generator or sha3 hash generator to compare formats.
Prefixed and encoded hash formats
Many modern password storage schemes embed metadata directly in the hash string. These prefixes make identification straightforward for a hash identifier:
- bcrypt: Starts with
$2a$,$2b$or$2y$, followed by a two-digit cost parameter, another dollar sign, then 53 base64 characters. Example:$2b$12$WApznUPhDubN0oeveSXHp.xMUyQgk7k.... - Argon2: Starts with
$argon2i$,$argon2d$or$argon2id$, includes version, memory, time and parallelism parameters, a salt and the derived key, all separated by dollar signs. - SHA-crypt:
$5$denotes SHA-256 crypt and$6$denotes SHA-512 crypt, commonly found in Linux/etc/shadowfiles. - NTLM: Exactly 32 hexadecimal characters, typically uppercase when displayed by Windows tools. It has no prefix, making it visually identical to an MD5 hash.
- MySQL: Version 4.1 and later uses an asterisk followed by 40 uppercase hex characters (a double SHA-1). Older MySQL versions used a 16-character hex string.
Ambiguity between hash types
Some algorithms produce outputs of the same length and character set, creating ambiguity. A 32-character hex string could be MD5, NTLM, or even a truncated representation of another algorithm. Similarly, a 40-character hex string might be SHA-1, RIPEMD-160, or the 40-character body of a MySQL 4.1 hash without its leading asterisk. When the hash identifier returns multiple candidates, consider where the hash came from. If it was extracted from a Windows SAM database, NTLM is far more likely than MD5. If it came from a Git commit, it is almost certainly SHA-1.
Base64-encoded hashes add another layer of complexity. A raw SHA-256 digest is 32 bytes, which encodes to 44 base64 characters including padding. Always check whether the input uses hex or base64 before drawing conclusions. Tools like the hash checker can verify a hash against a known plaintext once you have identified the algorithm.
Practical uses for identifying hashes
Security analysts, penetration testers and developers frequently encounter unlabeled hash strings in log files, database dumps, configuration files and network captures. Knowing the algorithm is the first step toward verifying integrity or auditing password storage practices. For instance, discovering that a web application stores passwords as unsalted MD5 hashes signals an urgent need to migrate to a stronger scheme like bcrypt or Argon2.
Developers integrating third-party APIs may receive hashed tokens without documentation specifying the algorithm. A quick check with a hash identifier clarifies what to expect. Forensic investigators also rely on hash identification when analyzing disk images or malware samples, where recognizing a specific digest format can reveal the tools or frameworks involved.
Worked examples
| Example | Input | Result |
|---|---|---|
| MD5 hash | Hash string: 5d41402abc4b2a76b9719d911017c592 | MD5: High; NTLM: High; MurmurHash 128: Low |
| SHA-256 hash | Hash string: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | SHA-256: High; SHA3-256: Medium; BLAKE2s: Low |
| bcrypt hash | Hash string: $2b$12$LJ3m4ys3Lg0VQkT7GqUx.OyYvG8K1pZfJzFzFzFzFzFzFzFzFzFz. | bcrypt: Very High |
| MySQL 4.1+ hash | Hash string: *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 | MySQL 4.1+: Very High |
FAQ
Can this hash identifier detect every algorithm?
It covers the most common hashing algorithms including MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt, Argon2, NTLM, CRC32 and MySQL formats. Proprietary or obscure custom hashes may not be recognized.
Why does my hash match multiple algorithms?
Several algorithms produce digests of the same length and character set. For example, MD5 and NTLM both output 32 hex characters. Context about where the hash originated is needed to determine the correct one.
Is my hash sent to a server for analysis?
No. The hash identifier runs entirely in your browser using JavaScript. Your hash string never leaves your device.
What is the difference between a hash and an encrypted string?
A hash is a one-way function designed so the original input cannot be recovered. Encryption is a two-way process where data can be decrypted back to its original form using a key.
How do I identify a bcrypt hash?
Bcrypt hashes always start with a prefix like $2a$, $2b$ or $2y$, followed by a cost factor, a dollar sign, and 53 characters from a modified base64 alphabet.
Can this tool crack or reverse a hash?
No. This tool only identifies the likely algorithm. It does not attempt to find the original input. Use a dedicated recovery tool or the hash checker to verify known plaintexts.