FormatterHQ

Hash Identifier

Paste hashes, one per line, to find out which algorithm most likely produced each one, from MD5 and SHA-256 to bcrypt, Argon2, crypt formats and database hashes.

Input TEXT
Output TEXT
Ready.

How to use the Hash Identifier

  1. Paste one or more hashes into the input, one per line (up to 200 lines).
  2. Lines in user:hash form are fine; the tool looks at the part after the last colon.
  3. Click Identify (it also runs automatically as you type).
  4. Read the result under each line: the arrow marks the most likely type, followed by alternatives of the same length.

Hash identifier for password hashes and digests

This hash identifier looks at the shape of a hash string and tells you which algorithm most likely produced it. It is meant for developers and administrators who find an unlabeled hash in a config file, a legacy database column or an old .htpasswd file and need to know what they are dealing with before migrating or verifying it.

How identification works

Hashes carry no metadata, so identification relies on two clues:

  1. Prefixes and structure. Modern password hashes are self-describing. $2y$10$… is bcrypt, $argon2id$v=19$… is Argon2, $6$ is SHA-512 crypt from Linux /etc/shadow, $apr1$ is Apache MD5, $P$ is phpass (older WordPress), pbkdf2_sha256$ is Django, and * followed by 40 uppercase hex characters is MySQL's mysql_native_password. These matches are nearly certain.
  2. Length and alphabet. A bare hex string can only be narrowed down by its length. 32 hex characters is 128 bits, which fits MD5, NTLM, MD4 and others; 64 hex characters fits SHA-256, SHA3-256, BLAKE2s and more. Base64 strings are decoded to a byte count and matched the same way.

Example

Three lines from the sample input produce:

5f4dcc3b5aa765d61d8327deb882cf99
  → MD5 — 32 hex characters = 128 bits (most likely)
    NTLM — 128-bit alternative
    MD4 — 128-bit alternative
    LM — 128-bit alternative
    RIPEMD-128 — 128-bit alternative
    xxHash128 — 128-bit alternative

$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
  → bcrypt — Password hash (Blowfish-based, cost factor after the version).

*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19
  → MySQL 4.1+ (mysql_native_password) — SHA1(SHA1(password)).

The bcrypt and MySQL results are definitive because of their prefixes. The first line is ambiguous by nature: every 128-bit algorithm produces 32 hex characters, so the tool lists MD5 first as the most common and shows the rest as alternatives.

Formats it recognizes

GroupExamples
Password hashingbcrypt, Argon2 (id/i/d), scrypt, yescrypt, SHA-512 crypt, SHA-256 crypt, MD5 crypt, APR1
Application formatsphpass, WordPress 6.8+ bcrypt, Django PBKDF2 and legacy SHA-1, passlib PBKDF2
Databases and directoriesMySQL 4.1+ and caching_sha2, PostgreSQL MD5 and SCRAM-SHA-256, MSSQL, LDAP {SHA}/{SSHA}
Raw digestsCRC-32, MD5, NTLM, SHA-1, SHA-224 to SHA-512, SHA-3, BLAKE2, Whirlpool, in hex or Base64

If you paste a JSON Web Token by mistake, it is flagged as a token, not a hash; open it in the JWT decoder instead.

Confirming an ambiguous result

When several algorithms share a length, the reliable way to confirm is to hash a known value. If you know one password in the dataset, hash it with the MD5 hash generator or SHA-256 hash generator and compare. Context helps too: a 32-character hash in a Windows export is likely NTLM, while one in an old PHP app is likely MD5.

Why this matters for security

Knowing the format is the first step in a defensive audit. If you find unsalted MD5, SHA-1 or NTLM protecting user passwords, those hashes should be migrated to a slow, salted algorithm such as bcrypt or Argon2, typically by rehashing each password at the user's next successful login. Identifying formats is also useful when importing users from another platform or checking that a new hasher is actually in use.

Privacy

Identification is pure pattern matching in your browser. Hashes are not uploaded or looked up against any online database, so you can safely analyze data from internal systems.

Frequently asked questions

Can a hash identifier tell MD5 and NTLM apart?
Not from the string alone. Both are 128-bit digests shown as 32 hex characters, so they look identical. Use context, such as where the hash came from, or hash a known password with each algorithm and compare.
Does this tool crack or reverse hashes?
No. It only reports which format a hash most likely uses. Hash functions are one-way; identifying the type is meant to help you verify, migrate or audit hashes you are responsible for.
Why is my hash shown as Unknown?
The string does not match any known prefix, and its length is not a standard digest size. Check for truncation, extra whitespace or a salt appended to the hash, and remove any label that is not separated by a colon.
Can I paste a list of user:hash lines?
Yes. For lines that contain a colon and do not start with $ or {, the part after the last colon is analyzed. Up to 200 lines are processed at once, and the status bar reports how many were identified.
How do I recognize a bcrypt hash?
A bcrypt hash is 60 characters long and starts with $2a$, $2b$ or $2y$, followed by a two-digit cost such as 10 or 12 and another dollar sign. The remaining 53 characters hold the salt and the hash.

Last updated October 3, 2026

Related tools

Adler-32 Hash Generator Generate the Adler-32 hash of any text or file online. Instant 32-bit checksum in hex, computed in your browser. Argon2 Hash Generator Hash and verify passwords with Argon2id, Argon2i or Argon2d using custom memory, iterations and parallelism. Runs locally via WebAssembly. BLAKE2b Hash Generator Generate BLAKE2b hashes (128–512 bits) with optional keyed MAC mode, from text or files. BLAKE2s Hash Generator Generate BLAKE2s hashes (128–256 bits), the 32-bit-optimised BLAKE2 variant, with optional key. BLAKE3 Hash Generator Generate BLAKE3 hashes from text or files — the fast, parallel successor of BLAKE2. CRC-16 Hash Generator Calculate CRC-16 checksums (ARC, MODBUS, CCITT, XMODEM, KERMIT, X-25, USB) for text or files. HMAC Generator Generate HMAC-SHA256, HMAC-SHA1, HMAC-SHA512, HMAC-MD5 and SHA-3 HMACs with a secret key, as hex or Base64. Htpasswd Generator Create .htpasswd entries for Apache and Nginx basic auth with bcrypt, APR1-MD5 or SHA-1 — one username:password per line. Keccak Hash Generator Generate original Keccak-224/256/384/512 hashes, including the Keccak-256 used by Ethereum and Solidity. MD2 Hash Generator Generate the MD2 hash of any text or file online. Instant 128-bit digest in hex, computed in your browser. MD4 Hash Generator Generate the MD4 hash of any text or file online. Instant 128-bit digest in hex, computed in your browser. MD5 Hash Generator Generate the MD5 hash of any text or file online. Instant 128-bit digest in hex, computed in your browser.