Password Generator

Strength:
Character sets

Processed entirely in your browser — nothing is sent to a server.

A password generator produces a random string of characters suitable for use as a login credential. What makes it different from just mashing the keyboard is the source of randomness: this tool draws from the browser’s cryptographic API rather than a predictable algorithm, so nobody can reconstruct earlier or later output even if they somehow saw one generated password.

How it works

Set a length and pick which character sets to draw from: uppercase letters, lowercase letters, numbers, and symbols. At least one set has to stay checked — deselecting all four would leave nothing to generate a password from, so the last one is locked until another is enabled. Under the hood, every character comes from crypto.getRandomValues(), the Web Crypto API’s cryptographically secure random number source. This matters because Math.random(), the more familiar JavaScript random function, is explicitly not designed to resist prediction and shouldn’t be used anywhere security depends on unpredictability.

A password appears as soon as the page loads, and a new one is generated automatically whenever you change the length, toggle a character set, or click Generate — there’s no separate “apply” step. Below the password, a strength indicator gives a rough read on how the current length and character variety compare to each other; it’s a simple heuristic based on those two inputs, not a full entropy calculation or a check against known breached-password lists.

As with every tool on this site, generation happens locally. The password never leaves your browser tab, and nothing is logged or transmitted — there’d be no way to recover a password you generated and then closed the tab without copying, which is by design.

Examples

Frequently asked questions

Is the generated password sent to a server?
No. Passwords are generated entirely in your browser and never transmitted anywhere, including to Wanodev’s own servers.
Is this a cryptographically secure random generator?
Yes. Characters are selected using crypto.getRandomValues(), the Web Crypto API, not Math.random(), which is not suitable for security-sensitive use.
Why can’t I uncheck the last character set?
At least one character set must stay enabled — with none selected, there would be no characters left to build a password from.