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
- Open Scrypt Password Hash in the Toolbox101 app.
- Type a password into the
Passwordbox and adjust N, r and p if needed. The defaults are N 16384, r 8 and p 1. - Leave
Salt (optional)empty for a fresh random salt each run, or enter one (hex or text) to make the result reproducible. - Click
Generate Newand read theSalt:andKey:lines in theOutputbox. N must be a power of two; an out-of-range value is reported there. - Click
Copyto 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
MyPasswordKey
000102030405060708090a0b0c0d0e0fOutput
Salt: 000102030405060708090a0b0c0d0e0f
Key: 929eb18f6b1cdc8436aa987ddfc9d89333bc8ab60a7a259d68ea9566aa1708314bbc847e131e2ec61563466b5dcde31f883a254e59b5f6962b35b39ebd6fe419Check 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.