Deeve Technologies
FreeNo signupRuns in your browser

Free Password Hasher

Hash and verify passwords with Argon2id, bcrypt, scrypt and PBKDF2, plus SHA-256, SHA-3 and BLAKE3. Identify any hash with its hashcat mode. Free, in-browser.

password hashes
4
digest algorithms
14
formats identified
30+

What it does

  • Argon2id, Argon2i and Argon2d with OWASP and RFC 9106 presets
  • bcrypt cost 4 to 15, as $2b$, $2y$ or $2a$
  • scrypt and PBKDF2, in passlib and Django formats
  • MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3 and RIPEMD-160, with salt and HMAC
  • Verify any password hash or digest against a password
  • Identify hashes with hashcat modes and John the Ripper formats
  • Bulk hash up to 1,000 inputs, export CSV or JSON
  • File checksums and a salt and key generator, all in your browser

Hash

Password hashing
Digests
0 bytes
KiB, 19 MiB
bytes
bytes

Result

Enter a password and press the button. Password hashes are slow on purpose; the result shows how long this one took in your browser.

Use it in your code

The same algorithm and parameters in production code, with each language’s standard library.

$hash = password_hash($password, PASSWORD_ARGON2ID, [
    'memory_cost' => 19456,
    'time_cost'   => 2,
    'threads'     => 1,
]);
$ok = password_verify($password, $hash);
Storing passwords

Rules that hold up in a breach

  1. 01Store passwords with Argon2id first, then scrypt, then bcrypt. Use PBKDF2 only where FIPS 140 requires it.
  2. 02Never store a password as a plain MD5, SHA-1 or SHA-256, salted or not: a single GPU tries billions a second.
  3. 03Let the library make the salt: 16 random bytes per password, stored in the hash string, never shared.
  4. 04Tune the cost so one hash takes a few hundred milliseconds on your server, and raise it as hardware gets faster.
  5. 05Add a pepper (a secret kept outside the database, applied with HMAC) so a stolen table alone is not enough.
  6. 06Rehash on login when a hash uses old parameters: PHP’s password_needs_rehash and argon2-cffi’s check_needs_rehash do this.
Questions

Frequently asked questions

What is password hashing?

Password hashing is a one-way function that turns a password into a fixed-length string. Unlike encryption it cannot be reversed: a login is checked by hashing the attempt with the same salt and parameters and comparing the results. Password hashes are deliberately slow and, for Argon2 and scrypt, memory-hard, so guessing is expensive.

Which algorithm should I use for passwords?

Argon2id, per OWASP’s Password Storage Cheat Sheet, with at least 19 MiB of memory, 2 iterations and 1 degree of parallelism. Where Argon2 is unavailable use scrypt (N=2^17, r=8, p=1), then bcrypt with a cost of 10 or more. Use PBKDF2 (600,000 iterations with HMAC-SHA-256) only when FIPS 140 compliance requires it. Never use MD5, SHA-1 or a plain SHA-2 digest for passwords.

What is the difference between MD5 and SHA-256?

MD5 produces a 128-bit digest (32 hex characters) and is cryptographically broken: collisions can be made in seconds. SHA-256 produces a 256-bit digest (64 hex characters) and is still secure for integrity and signatures. Both are fast by design, which is exactly why neither should be used alone to store passwords.

What is a salt, and what is a pepper?

A salt is a random value, unique to each password and stored alongside the hash, so identical passwords produce different hashes and precomputed rainbow tables are useless. bcrypt, Argon2 and scrypt generate and embed it automatically. A pepper is a secret shared by all passwords but kept outside the database, in configuration or a secrets manager, and applied with HMAC; a leaked table alone then cannot be cracked.

What does the bcrypt cost factor mean?

The cost is the base-2 logarithm of the number of key-expansion rounds: cost 10 is 2^10 = 1,024 rounds and each step up doubles the time. OWASP recommends a cost of 10 or more; choose the highest your login latency allows. Note that bcrypt reads only the first 72 bytes of a password, which this tool warns about.

What is the difference between $2a$, $2b$, $2y$ and $2x$?

They are version labels for bcrypt. $2a$ is the original; $2b$ (OpenBSD, 2014) fixed how long passwords wrap; $2y$ is PHP’s label for the same corrected algorithm. $2x$ marks hashes made by the pre-2011 implementation with the 8-bit character bug and should be rehashed. $2a$, $2b$ and $2y$ hashes of ordinary passwords verify interchangeably.

How do I choose Argon2 parameters?

Start from OWASP’s minimum: Argon2id with m=19456 KiB (19 MiB), t=2, p=1. RFC 9106 suggests m=64 MiB, t=3, p=4 where memory allows. Fix the memory your servers can spare per login, then raise the iterations until one hash takes a few hundred milliseconds. The parameters are stored in the hash string, so they can be raised later and old hashes still verify.

What is the PHC string format?

The Password Hashing Competition string format stores everything needed to verify in one field: $argon2id$v=19$m=19456,t=2,p=1$salt$hash, with the salt and hash in unpadded Base64. Argon2 libraries in PHP, Node, Python, Go and Rust all read and write it, as passlib does for scrypt and PBKDF2.

Is HMAC the same as a salted hash?

No. A salted hash concatenates a salt with the message, which for SHA-256 and other Merkle-Damgard hashes is open to length extension. HMAC (RFC 2104) mixes a secret key in twice through inner and outer padding, which is the correct way to authenticate data or apply a pepper. Use HMAC when a key is involved, a password hash when a password is.

How do I identify a hash algorithm?

Structured strings name themselves: $2b$ is bcrypt, $argon2id$ is Argon2, $6$ is sha512crypt, pbkdf2_sha256$ is Django. A bare hex digest is identified by length only, and lengths overlap: 32 characters is MD5, NTLM, MD4 or LM; 64 is SHA-256, SHA3-256 or BLAKE2s. The Identify tab lists every candidate with its hashcat mode and John the Ripper format.

Is this tool safe to use?

Yes. Every hash is computed in your browser with @noble/hashes (an audited, dependency-free library), bcryptjs and the Web Crypto API. Nothing you type or upload is sent to a server, logged or stored, and the page works offline once loaded. Even so, never paste a real production password or secret key into any website.

Keep going

Other free tools

Excel Formula and Shortcut Finder

496 Excel functions with examples, 343 Windows and Mac shortcuts, 114 tricks and 55 VBA snippets, all in one search.

Open the tool

Invoice Generator

Make invoices, receipts, quotes and proforma invoices with tax, discounts and your logo, then download a real PDF.

Open the tool

Business Card Generator

Design a business card with your photo, logo, signature and a QR code, then download a print-ready PDF.

Open the tool
Why it matters for your project

I build software, and I measure whether it works.

The same questions I research are the ones I ask on client builds: is it reliable, is it fast, is it easy to use, and is it secure. Those four drove satisfaction in my ICT portal study, and they shape how I scope and test every project.