Hash Identifier

Paste a hash to see which algorithms could have produced it, ranked by likelihood. The tool reads hex and Base64 digests and password-hash formats, and can test a guess against your own text.

Runs entirely in your browser. Nothing is uploaded.

How to use

  1. Paste one hash. Remove labels such as 0x, sha256= or sha384-, but keep password hashes whole, including a leading $, { or *.
  2. Read the result: the detected form and its size in bits, then the possible algorithms, with the most likely ones marked. The bcrypt cost factor, or the rounds of sha256crypt, sha512crypt and PBKDF2, is shown when the string contains it.
  3. For MD5, SHA-1, SHA-256, SHA-512, CRC-32 and CRC-32C candidates, Open tool takes you to the matching calculator.
  4. If you know or suspect the original text, type it into Check against text to see which algorithm reproduces the hash.

How a hash is identified

Every hash algorithm has a fixed output size, and hex uses two characters per byte, so the length of a hex string is the strongest clue. The tool also checks the character set and looks for the prefixes that password-hash formats put at the start.

Hex charactersBitsCommon algorithms
832CRC-32, CRC-32C, Adler-32
32128MD5, NTLM, MD4
40160SHA-1, RIPEMD-160
56224SHA-224, SHA3-224
64256SHA-256, SHA3-256, BLAKE2s, Keccak-256
96384SHA-384, SHA3-384
128512SHA-512, SHA3-512, BLAKE2b, Whirlpool

Length alone cannot settle the question, because a good hash looks like random data and carries no marker of its algorithm. A 32-character value could be MD5, MD4 or NTLM, which Windows uses for account passwords (MD4 of the password in UTF-16LE). The tool therefore ranks candidates by how common they are: MD5 first, or NTLM first when the hash is all uppercase, as some Windows password-dumping tools print it. Likewise, Ethereum's Keccak-256 and the standardized SHA3-256 differ only in padding, yet both give 64 hex characters.

Base64 digests and password-hash formats

Some systems write digests in Base64 instead of hex: 24 characters for 16 bytes (MD5, as in the Content-MD5 header), 28 for SHA-1, 44 for SHA-256, 64 for SHA-384 (as in Subresource Integrity attributes) and 88 for SHA-512. The tool converts the length back to bytes and lists the same candidates. Missing padding and URL-safe characters are accepted, but remove a prefix such as sha384- first.

Password-hash formats describe themselves: a prefix names the algorithm, and the salt and cost settings are written into the string. The modern ones are salted and deliberately slow; the LDAP and MySQL formats in the last two rows are fast SHA-1 constructions, and only {SSHA} adds a salt.

Starts withFormatTypically found in
$2a$, $2b$, $2y$bcrypt, always 60 characters; the next two digits are the cost factor, and each step doubles the workWeb frameworks, PHP password_hash()
$argon2id$Argon2id with memory (m), time (t) and parallelism (p) settingsModern applications; recommended by OWASP
$6$, $5$sha512crypt, sha256crypt, with optional rounds=/etc/shadow on Linux
$y$yescrypt/etc/shadow on many current Linux distributions
$1$, $apr1$md5crypt, Apache MD5Older Unix systems, .htpasswd
pbkdf2_sha256$PBKDF2-SHA256 with its iteration countDjango
{SHA}, {SSHA}SHA-1, salted SHA-1LDAP directories
* and 40 hex digitsMySQL 4.1+ PASSWORD()MySQL user tables

Identifying is not cracking

A hash is one-way. The identifier only looks at the shape of the string: it cannot reveal, decrypt or look up the input, and it sends nothing to a server or an online database. The only way to find an input is to guess candidates and hash each one, which is what password-recovery tools such as hashcat and John the Ripper do once they know the algorithm. Salted, slow formats such as bcrypt and Argon2 exist to make that guessing expensive. Only test hashes you are authorized to work with.

Check against text tests one specific guess. It hashes the text you type, as UTF-8, with MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 and CRC-32C, and tells you which result equals the hash, whether it is written in hex of either case or in Base64. It cannot confirm salted password hashes or HMACs, because those also depend on a salt or a secret key; for a keyed value, use the HMAC generator with the key.

Frequently asked questions

Can this tool tell me the original text or password?

No. It only names the probable algorithm. Hash functions cannot be reversed; online "hash decrypters" look the value up in tables of hashes of common words and leaked passwords, which works only for weak, unsalted inputs.

Why are several algorithms listed for one hash?

Algorithms with the same output size produce strings of the same length and character set, and nothing inside the hash records which one was used. The most likely candidate is marked first, based on how common each algorithm is. To be certain, recompute the hash from a known input.

Is a 32-character hex string always MD5?

Usually, but not always. NTLM, MD4, MD2 and RIPEMD-128 give the same length, and so does any 128-bit value written in hex, such as a UUID without dashes or a random token. Context decides: a Windows password hash means NTLM, a file checksum means MD5.

Why does Check against text find no match?
The text must match byte for byte. Common causes are a trailing newline (echo adds one unless you use echo -n or printf), different spacing or letter case, text that was hashed in an encoding other than UTF-8, a salt or key as in password hashes and HMACs, or an algorithm the check does not cover, such as SHA-3, BLAKE2 or NTLM.
Is it safe to paste a password hash here?

The analysis runs entirely in your browser and the hash is not transmitted or stored. Still, a password hash from a real system lets anyone who has it try guesses offline, so treat such hashes as sensitive and keep them out of tickets, chats and screenshots.