About this tool
The scrypt KDF Hash Generator & Verifier derives and checks scrypt outputs locally in your browser. scrypt, designed by Colin Percival and standardised in RFC 7914, is a memory-hard key derivation function: its cost is deliberately dominated by memory bandwidth so that custom cracking hardware gains little advantage. The pipeline is PBKDF2-HMAC-SHA256 to expand the password, the ROMix function built on BlockMix and the Salsa20/8 core to force large sequential memory use, and a final PBKDF2-HMAC-SHA256 to produce the derived key of your chosen length.
Generate mode reads 16 random salt bytes from crypto.getRandomValues and runs scrypt with three cost parameters: N is the CPU/memory cost and must be a power of two (default 16384 = 2^14), r is the block size (default 8), and p is the parallelisation factor (default 1). Memory usage is roughly 128 · N · r bytes — about 16 MiB at the defaults — and the tool warns when your settings would exceed 256 MiB. The output is a self-describing string $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key> where ln = log2(N), so every parameter needed to verify is carried with the hash.
Verify mode parses ln, r, p, the salt, and the stored key out of that string, recomputes the derived key with the candidate password, and does a constant-time comparison to report match or no-match. The scrypt core runs as an eval-free WebAssembly build under the browser's strict security policy, so passwords are processed 100% in your browser and nothing is uploaded.