Hash Identifier
Identify hash algorithms from a hash string using length, character set, and distinctive prefixes. Detects MD5, SHA, bcrypt, Argon2, PBKDF2, JWT and more.
Updated
Hash Identifier
Identify hash algorithms from a hash string using length, character set, and distinctive prefixes. Detects MD5, SHA family, bcrypt, Argon2, PBKDF2, JWT, and more with Hashcat mode hints.
Identify Hash
Length: 0 characters
Candidate Algorithms
Enter a hash string above to identify candidate algorithms.
Frequently Asked Questions
What is the Hash Identifier?
A tool that analyzes a hash string and lists candidate algorithms (MD5, SHA-1, SHA-256, bcrypt, Argon2, PBKDF2, JWT, and more) based on length, character set, and prefixes.
Is it private?
Yes — all detection is client-side regex pattern matching. Your hashes never leave your device.
Why does it show multiple candidates?
Many hashes are indistinguishable (e.g. MD5, NTLM, MD4, LM all emit 32 hex chars). Results are ranked by confidence with the corresponding Hashcat mode number.
Is the Hash Identifier free to use?
Yes, the Hash Identifier is 100% free with no registration, no hidden fees, and no usage limits. All processing happens locally in your browser, ensuring complete privacy.
Is my data safe with this tool?
Absolutely. The Hash Identifier processes everything client-side in your browser. No data is uploaded to or stored on any server. Your content remains private on your device at all times.
Does the Hash Identifier work on mobile devices?
Yes, the Hash Identifier is fully responsive and works on smartphones and tablets. You can use it on any device with a modern web browser -- no app download required.
Do I need to create an account to use this tool?
No account or registration is needed. Simply open the Hash Identifier in your browser and start using it immediately. There are no sign-up walls or usage restrictions.
How do I use the Hash Identifier?
Simply enter your input in the provided field, adjust any settings to your preference, and the tool will process it instantly. You can then copy the result to your clipboard or download it.
Which browsers are supported?
The Hash Identifier works in all modern browsers including Chrome, Firefox, Safari, Edge, and Opera. For the best experience, use the latest version of your preferred browser.
How can you tell the difference between an MD5 and an NTLM hash?
You usually can't from the digest alone, and that is the honest answer most tools won't give you. Both MD5 and NTLM produce a 32-character hexadecimal string, because NTLM is essentially an unsalted MD4 of the UTF-16 password and shares the same 128-bit length. MD2, MD4, LM, RIPEMD-128 and HAVAL-128 also land at 32 hex characters, so they are mathematically indistinguishable by shape. The deciding factor is context: a 32-hex value pulled from a Windows SAM database or a domain controller dump is almost certainly NTLM, while one from a web application's user table is more likely MD5. This tool lists every plausible 32-hex candidate ranked by confidence with each one's Hashcat mode, so you can pick the right algorithm based on where the hash came from. Paste your hash above to see the full candidate list.
What is a Hashcat mode number and why does this tool show one?
A Hashcat mode is the numeric value you pass to Hashcat's -m flag to tell it exactly which algorithm to crack. Hashcat supports hundreds of formats, and each has its own mode: MD5 is -m 0, SHA-1 is -m 100, SHA-256 is -m 1400, bcrypt is -m 3200, SHA-512 crypt is -m 1800, and JWT is -m 16500. Picking the wrong mode means Hashcat compares your wordlist against the wrong algorithm and never finds a match, so getting this number right is the first practical step in any cracking attempt. This identifier prints the matching mode beside every candidate it recognizes, so instead of hunting through Hashcat's mode list you can copy the value straight into your command. Note that purely informational formats like MD2 or Adler-32 show no mode because Hashcat does not target them.
Why can a bcrypt or Argon2 hash be identified with high confidence but a raw SHA-256 cannot?
The difference is whether the algorithm is written into the string itself. Adaptive password hashes like bcrypt, Argon2, and the Unix crypt variants use structured formats that embed metadata as prefixes: bcrypt always starts with $2a$, $2b$, or $2y$ followed by a cost factor and a 53-character tail, while Argon2 begins with $argon2id$ or $argon2i$ and lists its memory and iteration parameters. Those markers make identification unambiguous, not a guess. A raw SHA-256 digest, by contrast, is just 64 hexadecimal characters with no embedded clues, and SHA3-256 and BLAKE2s-256 share that exact length. So the tool reports salted and prefixed formats as high confidence and raw hex digests as a ranked best guess. Paste any hash to see which category yours falls into and how certain the match is.
How does the tool detect a JWT instead of just another Base64 string?
A JSON Web Token has a distinctive structure: three Base64URL-encoded segments joined by dots in the form header.payload.signature. The identifier first checks for exactly three dot-separated parts that each contain only valid Base64URL characters, which rules out ordinary hashes. But many random strings could technically match that pattern, so the tool goes a step further and actually decodes the first segment, then confirms the resulting JSON header contains an alg field declaring the signing algorithm. A token that decodes to a real header with alg present scores high confidence, while something that only resembles the shape scores lower. This matters because JWTs are not password hashes but signed tokens, and the signature uses its own Hashcat mode, -m 16500. Paste a token to confirm it is a genuine JWT before you try to attack its signature.
What should I do when the hash identifier returns no match?
A no-match result almost always means the input is slightly malformed rather than an unknown algorithm, and a few quick checks usually fix it. First, strip stray whitespace, line breaks, or quotation marks that were copied along with the hash, since detection trims the value but cannot guess past leading or trailing junk. Second, confirm the string is complete: a truncated prefix like a missing $2a$ on a bcrypt hash, or a dropped character that breaks the expected length, will defeat pattern matching. Third, watch for non-hex characters such as a stray g or a smart-quote that snuck in during copy-paste. If you are pasting a batch, the Bulk tab flags each line individually so you can spot the one that failed. Clean the value and paste it again, and the tool will re-run detection instantly.
Embed This Tool
Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.
<iframe src="https://getthetoolbox.com/embed/hash-identifier" title="Hash Identifier — The Toolbox" width="100%" height="220" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/security-tools/hash-identifier?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free Hash Identifier</a> by The Toolbox</p>Related Tools
Free Hash Verifier Online
Verify file integrity by comparing hash checksums. Free, fast, and works entirely in your browser with no sign-up required.
Free Security Headers Analyzer
Check website security headers and get improvement suggestions. Free, fast, and works entirely in your browser with no sign-up required.
Free Encryption/Decryption Tool
Encrypt and decrypt text using AES, DES, and other algorithms. Free, fast, and works entirely in your browser with no sign-up required.
Free HMAC Generator Online
Generate HMAC signatures for API authentication using multiple hashing algorithms. Free, fast, and works entirely in your browser with no sign-up required.
About the Hash Identifier
The Hash Identifier takes a mystery hash string and tells you which algorithm most likely produced it. Paste a value like 5f4dcc3b5aa765d61d8327deb882cf99 and it instantly returns a ranked list of candidate algorithms — MD5, the SHA family, bcrypt, Argon2, PBKDF2, JWT and dozens more — each tagged with a confidence level and, where one exists, the matching Hashcat mode number. It is built for penetration testers, CTF players, incident responders, and developers who have found a hash in a database dump, a config file, or a leaked credential and need to know what they are looking at before they can do anything with it.
All detection happens in your browser using pattern matching. Nothing you paste is uploaded, logged, or stored on a server, which matters when the "test data" is a real password hash pulled from production. There is no sign-up and no usage limit.
How hash identification works
Identification is heuristic, not magic. The tool inspects three signals: the string's length, its character set (hexadecimal, Base64, or Base64URL), and any distinctive prefix. A 32-character hex string is 128 bits, so it could be MD5, NTLM, MD4, LM, MD2, RIPEMD-128, or HAVAL-128 — all genuinely indistinguishable from the digest alone. The Hash Identifier lists every plausible candidate rather than pretending there is one answer, and orders them by likelihood. The common hex lengths it maps are:
- 32 hex chars (128-bit) — MD5, NTLM, MD4, LM and friends
- 40 hex chars (160-bit) — SHA-1, RIPEMD-160
- 56 / 64 / 96 / 128 hex chars — SHA-224, SHA-256, SHA-384, SHA-512 and their SHA-3 and BLAKE2 counterparts
Prefixed and structured formats
Some hashes carry their algorithm inside the string, and for those detection is unambiguous rather than a guess. The Hash Identifier recognizes the standard crypt(3) and PHC prefixes and a range of vendor formats:
$1$MD5 crypt,$5$SHA-256 crypt,$6$SHA-512 crypt$2a$ / $2b$ / $2y$bcrypt, validated down to the cost factor and 53-character tail$argon2i$ / $argon2id$Argon2, the memory-hard PHC competition winner$pbkdf2-*, phpass$P$ / $H$(WordPress, phpBB), LDAP{SSHA}and{SHA}, Cisco Type 8/9, and MSSQL formats
It also detects JSON Web Tokens by their three Base64URL segments and actually decodes the header to confirm an alg field is present, so a real JWT scores higher confidence than something that merely looks like one. For Base64-encoded digests it checks the decoded byte length — 16, 20, 32, or 64 bytes — to flag a probable MD5, SHA-1, SHA-256, or SHA-512.
Bulk mode and the Hashcat workflow
Beyond single lookups, a Bulk tab accepts one hash per line and returns the top candidate, confidence, Hashcat mode, and a count of alternatives for each row — useful for triaging a whole dump at once. A Reference tab lists the full length-to-algorithm map and prefix table so you can eyeball formats without typing anything.
The Hashcat mode hints are the practical payoff. If the tool identifies bcrypt, it shows hashcat -m 3200; SHA-256 crypt shows -m 7400; an MD5 digest is -m 0. You can copy that straight into a cracking command without hunting through Hashcat's mode list.
Reading the results sensibly
Treat raw-digest matches as a best guess, not a verdict. Because MD5 and NTLM share a length, a 32-hex result tells you the shape of the hash, not the system that made it — context (a Windows dump versus a web app) usually breaks the tie. Salted and adaptive formats like bcrypt, Argon2, and the crypt variants are reliable because the parameters are embedded. If you get no match, check for stray whitespace, a missing prefix, or non-hex characters, then paste it again.