Cryptography

Scrypt password hash generator

Scrypt Password Hash runs the RFC 7914 scrypt derivation on the password you type, with defaults of N 16384, r 8 and p 1. Backend developers evaluating credential storage, or deriving keys from a passphrase, use it to see how a memory-hard function raises the cost of guessing. The Output shows two lines: the salt in hex and the derived 64-byte key as 128 hex characters. An empty "Salt" box draws fresh random bytes.

How to use Scrypt Password Hash

  1. Open Scrypt Password Hash in the Toolbox101 app.
  2. Type a password into the Password box and adjust N, r and p if needed. The defaults are N 16384, r 8 and p 1.
  3. Leave Salt (optional) empty for a fresh random salt each run, or enter one (hex or text) to make the result reproducible.
  4. Click Generate New and read the Salt: and Key: lines in the Output box. N must be a power of two; an out-of-range value is reported there.
  5. Click Copy to take both lines. Keep the salt with the key, because checking the key later needs it.

Worked example

Scrypt Password Hash returns the output below for this combination.

Input

MyPassword

Key

000102030405060708090a0b0c0d0e0f

Output

Salt: 000102030405060708090a0b0c0d0e0f
Key: 929eb18f6b1cdc8436aa987ddfc9d89333bc8ab60a7a259d68ea9566aa1708314bbc847e131e2ec61563466b5dcde31f883a254e59b5f6962b35b39ebd6fe419

Check it yourself: open Scrypt Password Hash and enter the same input and key.

Frequently asked questions

Why does the output change between runs of the same password?

An empty Salt box makes each run draw a fresh random 16-byte salt, and scrypt's output depends on the salt as much as on the password. Enter a fixed salt to reproduce a result: hex text of even length is decoded as bytes, and any other text is used as UTF-8, so the same password, salt, N, r and p always return the same two lines.

Why is the derived key 128 hex characters?

The tool derives a 64-byte key and writes it as 128 lowercase hex characters, two per byte. The value is a key, not a self-verifying hash: there is no standard wrapper that carries the salt and cost parameters with it, which is why the tool prints the salt on its own line.

What do N, r and p mean in scrypt?

N is the CPU and memory cost factor and must be a power of two; r is the block size and p the parallelism. The defaults are N 16384, r 8, p 1, a common production choice. The boxes accept N from 1 to 32768, r from 1 to 32 and p from 1 to 16, and higher values mean more work per attempt.

Can I reproduce the result in another tool?

Yes. This is plain RFC 7914 scrypt, so the same password, salt, N, r and p give the same 64 bytes in Python's hashlib.scrypt, Node's crypto.scryptSync and OpenSSL. Pass the salt as the bytes shown on the Salt line, not as the hex text.

Scrypt or Argon2id: which should I use for passwords?

Argon2id, a sibling tool here, is the usual first choice: it won the Password Hashing Competition, and its encoded string stores salt and cost parameters for later verification. Scrypt stays a solid option where it is already built in, as in OpenSSL, Python and Node, and it beats plain PBKDF2 against dedicated cracking hardware.

Use Scrypt Password Hash now

Runs in your browser. Nothing you type is uploaded.