How to Generate Secure Passwords
Create strong, random passwords with customizable length and character sets.
Problem
You need a strong password that is resistant to brute force and meets complexity requirements.
Prerequisites
- Understanding of password strength
- Knowledge of character sets
Steps
-
1. Set the password parameters
Choose a length (at least 12 characters; 16+ recommended). Select character sets to include: lowercase, uppercase, digits, and symbols. Longer passwords are stronger than complex short ones. Avoid ambiguous characters (O, 0, I, l) if the password must be transcribed.
Inputlength: 16, all character setsOutputparameters set -
2. Generate the password
Generate the password using a cryptographically secure random number generator. For each character, randomly select from the chosen character sets. Ensure at least one character from each selected set is included. The generation must use a CSPRNG, not Math.random.
Input16 chars, all setsOutputK7#m@xL2!pQ9$vNw -
3. Evaluate strength and use
Check the password meets your requirements (length, character types). Estimate entropy: each character adds log2(charset_size) bits. A 16-character password with 94 possible characters has about 105 bits of entropy. Use the password immediately or store it in a password manager.
InputK7#m@xL2!pQ9$vNwOutputentropy: ~105 bits, very strong
Expected result
A strong, random password that meets the specified complexity and length requirements.
Common errors
- Using Math.random for password generation
- Math.random is not cryptographically secure. Use crypto.getRandomValues or a dedicated secure generator.
- Excluding symbols to make it memorable
- Length matters more than complexity. A 20-character lowercase password is stronger than an 8-character complex one. Prioritize length.
Troubleshooting
- If the password is rejected by a service, check its specific requirements (some disallow certain symbols).
- Generate a new password if you need to exclude specific characters.
Security limits
- Generated passwords stay in your browser. No password is transmitted or stored remotely.
- Use a password manager to store generated passwords securely.
Related tools
Related tasks
Ready to run it?