Web Crypto API
crypto.getRandomValues — uniform indices via rejection sampling
Client-side · CSPRNG · Optional HIBP
Secrets are generated with crypto.getRandomValues in your browser—no server sees them. Optional Have I Been Pwned lookup sends only a hash prefix (k-anonymity), never the full string. Read our privacy policy for cookies, analytics, and consent.
Choose which symbol classes appear in generated secrets. At least one must stay on.
SHA-1 hash is computed in your browser; only the first 5 hex characters are sent to Have I Been Pwned (k-anonymity). Plaintext never leaves this device.
No session entries
crypto.getRandomValues — uniform indices via rejection sampling
Long secrets, optional breach check — not a formal certification
SHA-1 hash prefix only; plaintext stays in your browser

Practical techniques for creating strong passwords in 2025: length, complexity, and practices aligned with current guidance.

Understand password entropy and why it is the true measure of password strength. Learn how bits of entropy translate to real-world security.

Compare passphrases and traditional passwords to determine which offers better security. Learn when to use each approach.