Password Generator
Generate strong, random passwords with custom length and character sets.
Password
Generate Secure Password
All generation runs locally in your browser — nothing is sent anywhere.
Help
How to Use the Password Generator
Drag the slider to choose between 7 and 100 characters. Longer passwords are significantly harder to brute-force.
Enable Uppercase, Lowercase, Numbers, and/or Symbols. Each selected set is guaranteed to appear at least once in the result.
Click Generate to create a password. Use the eye icon to reveal it and Copy to put it on your clipboard. Click Regenerate to create a fresh one with the same settings.
When symbols are included, two extra variants appear — URL Encoded (percent-encoded, safe for query strings) and URL Safe (symbols replaced with - _ . ~, usable directly in URLs). Both are masked by default.
URL EncodedUsing a percent-encoded password in popular stacks
curl -u "user:P%40ssw0rd%21" \
https://api.example.com/dataconst pwd = "P@ssw0rd!";
const url = `https://api.example.com/data`;
fetch(url, {
headers: {
Authorization: "Basic " +
btoa(`user:${encodeURIComponent(pwd)}`)
}
});import requests
from urllib.parse import quote
password = "P@ssw0rd!"
encoded = quote(password, safe="")
r = requests.get(
"https://api.example.com/data",
auth=("user", password) # requests handles encoding
)const { URL } = require("url");
const pwd = "P@ssw0rd!";
const url = new URL("https://db.example.com");
url.username = "admin";
url.password = pwd; // auto percent-encoded
console.log(url.href);
// https://admin:P%40ssw0rd%21@db.example.comimport "net/url"
pwd := "P@ssw0rd!"
u := &url.URL{
Scheme: "https",
User: url.UserPassword("admin", pwd),
Host: "db.example.com",
}
fmt.Println(u.String())
// https://admin:P%40ssw0rd%21@db.example.com# .env — percent-encode special chars in the password
DATABASE_URL=postgresql://admin:P%40ssw0rd%21@localhost:5432/mydbURL SafeUsing a URL-safe password (no percent signs) in popular stacks
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: P-ssw0rd.Safe~key
# No quoting or encoding neededapiVersion: v1
kind: Secret
metadata:
name: db-secret
stringData:
password: "P-ssw0rd.Safe~key"
# stringData accepts plain text — no base64 neededupstream backend {
server https://user:P-ssw0rd.Safe~key@api.internal;
}
# URL-safe chars need no escaping in nginx configspring.datasource.url=jdbc:postgresql://localhost/mydb
spring.datasource.username=admin
spring.datasource.password=P-ssw0rd.Safe~key
# No encoding needed in .properties files# URL form — URL-safe password needs no escaping
redis-cli -u redis://user:P-ssw0rd.Safe~key@localhost:6379
# Or via env
export REDIS_URL=redis://:P-ssw0rd.Safe~key@localhost:6379# .env — URL-safe passwords work unquoted
DB_PASSWORD=P-ssw0rd.Safe~key
API_KEY=xyz-abc_123.token~v2
# Load in Node.js
# require("dotenv").config()