Skip to content
Tezmy Tools

Scrypt Password Hash Generator

Create and verify scrypt password hashes with your own cost settings

Needs about 16.0 MB of memory and may take a few seconds on a phone.

Runs in your browser. Nothing is uploaded.

About the Scrypt Password Hash Generator

Scrypt is a password hashing function that is deliberately slow and memory hungry, which makes large-scale guessing expensive. This tool makes scrypt hashes from a password and lets you check a password against an existing hash. You choose the cost N, the block size r, the parallelism p, the salt and the output length. The result is shown both as a $scrypt$ text string and as a raw hex key. The work is done by code running in your browser, so the password is never sent to a server. It matches the RFC 7914 test vectors and Python's hashlib.scrypt.

Updated September 2026

How to use the Scrypt Password Hash Generator

  1. 1Pick Create hash or Verify password and type the password.
  2. 2To create, choose N (the cost), r, p and the output length. The defaults, N=16384, r=8, p=1, are a common starting point.
  3. 3Leave the salt empty for a fresh random salt, or paste your own salt in hex to repeat a result.
  4. 4Press Create scrypt hash, then copy the $scrypt$ string or the raw hex key.
  5. 5To check a hash, switch to Verify, paste the $scrypt$ string and press Check password.

Why slow hashing matters

If a site stores plain SHA-256 hashes of passwords, an attacker who steals them can test billions of guesses per second. Password hashes such as scrypt make every guess cost time and memory, so the same attack becomes thousands of times slower. The price is a little work each time a real user signs in, which is usually worth paying.

Choosing the settings

  • N: doubling it doubles time and memory. Start at 16384 and raise it while sign-in stays comfortable.
  • r: leave at 8 unless a specification says otherwise.
  • p: 1 is normal. A higher value adds work in independent lanes rather than memory.
  • Output length: 32 bytes is enough for a password hash.
  • Salt: at least 16 random bytes, new for every password.

Verifying and comparing results

To confirm a stored hash, use the Verify tab. The tool reads the cost settings and salt from the string, recomputes the key from the password you typed and compares the two. If you work with a library that stores the parts in separate columns, create the hash here with the same salt and compare the raw hex key instead.

The Password Generator makes long random passwords, and the Password Strength Checker tells you how hard a password is to guess. For plain file checksums use the Hash Generator, since scrypt is meant for passwords only.

Limits in a web page

A page has less memory than a server, so N is capped at 65,536 and the tool shows the memory it needs. Computation happens in JavaScript and can freeze a slow phone for a few seconds at the highest settings. Everything is processed locally.

Features

  • Choose N from 2^10 to 2^16, with r up to 16 and p up to 16
  • PHC-style $scrypt$ln=..,r=..,p=..$salt$hash string, and the raw key in hex
  • Random or chosen salt, and output length from 1 to 256 bytes
  • Verify a password against a $scrypt$ hash
  • Memory estimate before you run it
  • Matches the RFC 7914 test vectors

Frequently asked questions

What are N, r and p in scrypt?

N is the CPU and memory cost and must be a power of two. r is the block size, which scales memory use. p is the parallelism, the number of independent lanes. Memory needed is about 128 × N × r bytes, so N=16384 with r=8 uses 16 MB.

Which settings should I choose?

A widely used interactive setting is N=16384, r=8, p=1. Larger N is stronger but slower. On a phone, N=65536 can take several seconds, so test on the devices you care about. A server can often afford a higher cost than a web page.

Does the salt have to be random?

For real password storage, yes: use a new random salt for every password so equal passwords give different hashes. Enter your own salt only to reproduce a known result or to test. The salt is saved inside the hash string.

Is this the same format as other libraries?

The $scrypt$ln=14,r=8,p=1$salt$hash layout with standard Base64 without padding follows the PHC style. Some libraries write the salt and hash in other formats, for example with dots in place of plus signs, so a string from another program may not parse here. The raw hex key can be compared with anything.

Is scrypt better than bcrypt?

Scrypt needs lots of memory as well as time, which makes specialised cracking hardware more costly. Bcrypt has a longer track record and needs little memory. Argon2id is the current general recommendation, but scrypt remains a solid, widely supported choice.

Is my password uploaded?

No. The password and salt stay in your browser tab. Still, avoid typing real production passwords into any web page, and use a test value when you only want to learn or compare formats.

Related tools