Hash Type Identifier
WebEverything runs locally in your browser — nothing is uploaded
Given a hash, the first question is usually “which algorithm made this?”. This tool lists the algorithms it might be, based on length and character set, covering MD5, the SHA family, SHA3, BLAKE, RIPEMD, CRC and formats like bcrypt, argon2, scrypt, the crypt family, MySQL and Django — over 40 in all. ⚠️ Note carefully that it gives candidates, not a verdict: a 32-character hex string could be MD5, NTLM, MD4 or LM, and since they share a length and a character set, the string alone can never tell you which. The only formats that can be identified for sure are the prefixed ones (`$2b$` is bcrypt, `$argon2` is argon2, `*` plus 40 hex digits is MySQL 4.1) because the prefix is part of the format. To be certain, you have to know where the value came from, or hash the original text with each algorithm and compare. Everything runs in your browser — the hashes you paste never leave this page.
Features
- Identification by length plus character set, 40+ algorithms
- Handles hex, Base64, Base64URL and hyphenated UUID lines mixed together
- Prefixed formats (bcrypt, argon2, scrypt, crypt, Django, MySQL) are matched by prefix, never by length
- Candidates ranked likely / possible / unlikely and colour-coded
- States plainly that same-length algorithms cannot be told apart
- Choose names only, or show the evidence for each candidate
- Copy one line, or copy everything
How to use
- Paste one hash per line (several are fine)
- The result shows length, character set and candidate algorithms
- Leave “Show the evidence” ticked to see why each candidate is listed
- Switch to “Names only” for a compact list
FAQ
- Can it tell me for sure this is MD5?
- No, and no tool can — as long as the length and character set match, MD5, NTLM, MD4 and LM produce identical-looking output, and neither a person nor a program can tell them apart from the string itself. So this gives a ranked list of candidates. The only formats that can be identified for sure are the prefixed ones (bcrypt, argon2, crypt, Django, MySQL 4.1).
- How do I actually determine the algorithm?
- Two ways: look at where the value came from (the database column, the export notes, the function your code calls), or hash the original plaintext with each algorithm and compare — that comparison is the only reliable test.
- Why is a digits-only string treated as a hash?
- Because a string of digits of even length is both valid hex (matching some digest lengths) and the shape of a Cisco type 7 password. Both are listed — another reminder that identical shapes cannot be told apart.
- Are my hashes uploaded?
- No. Identification is done entirely in your browser, purely from string length and character set. Nothing is queried and no request is made.
Related tools
Hash
EncodingCompute MD5, SHA-1, SHA-256, SHA-512 or MD4 digests of any text, hashed as UTF-8 bytes so they match openssl exactly. Runs in your browser.
SHA-3 / Keccak
EncodingCompute SHA-3, SHAKE and original Keccak digests across ten variants, including the Keccak-256 Ethereum uses. SHAKE output length is yours to set.
MD5 Lookup
EncodingLook up an MD5 digest against a common password list and numeric or lowercase enumeration, entirely on this device — no upload, no online database.
URL Parser
WebParse a URL into scheme, host, port, path, query parameters and fragment, with each parameter shown raw and decoded. Runs entirely in your browser.
User-Agent Parser
WebParse a user agent into browser, version, OS, device type and engine, and see which rules matched. Pattern matching only. Runs entirely in your browser.
HTTP Status Codes
WebLook up an HTTP status code for its meaning, 1xx–5xx class, typical uses and common traps. Runs entirely in your browser.