Passwords: Unique, Long, Managed
One reused password turns a breach on a forgotten shopping site into a breach of your whole life. Make every one unique, long, and stored somewhere you don't have to remember.
Every account you own is a door. Most people protect all of them with the same key, then wonder how someone got into the vault. Here is how to fix it, in order of impact.
1. The password is your digital fingerprint
Stop using the same password for everything. This is not a suggestion; it's a non-negotiable law of the digital universe. Using one password is like using the same key for your front door, your car and your bank vault.
Breached sites leak email + password pairs by the billion. Attackers feed those lists into automated credential stuffing tools that try every pair against banks, email providers, cloud storage and social networks. They don't need to crack anything; they just need you to have reused it once.
The solution: use a password manager. It is a one-time mental commitment that solves an infinite problem. It generates a unique random password for every service, so a breach on one site stays on that site. This single habit turns a catastrophic breach into a minor inconvenience.
2. Length beats complexity
P@ssw0rd! passes most "strong password" checks and falls in seconds, because attackers try those substitutions first. What actually resists guessing is randomness × length, measured in bits of entropy:
| Password | Entropy |
|---|---|
| 8 random characters (all 95 printable) | ~53 bits |
| 12 random characters | ~79 bits |
| 16 random characters | ~105 bits |
| 4 random Diceware words | ~52 bits |
| 6 random Diceware words | ~78 bits |
Every extra bit doubles the attacker's work. Aim for 80+ bits on anything that matters.
For the few passwords you must type or remember (your password manager, your computer login), use a passphrase: several words chosen randomly, not a lyric or quote.
# Bitwarden CLI — 6 random words
bw generate --passphrase --words 6 --separator "-"
# no manager installed yet — 24 random bytes, base64
openssl rand -base64 24
The randomness has to come from a machine or from dice — never from your head. Humans are predictable; wordlists of "random" human choices are what cracking rigs try first.
3. Pick a password manager
Any reputable manager beats reuse. A few solid options:
- Bitwarden — open source, independently audited, free tier syncs across devices.
- 1Password — polished, audited, paid; adds a secret key on top of your master password.
- KeePassXC — open source and fully offline; you control the encrypted file and how it syncs.
The wider field, limited to managers still available:
| Name | License | Operating system support | Browser integration | Delivery format |
|---|---|---|---|---|
| 1Password | Proprietary | Android, iOS, Linux, macOS, Windows | Yes | Local installation with cloud sync |
| Bitwarden | Server: AGPL-3.0-only; Clients: GPL-3.0-only | Android, iOS, Linux, macOS, Windows | Yes | Local installation with cloud sync |
| Dashlane | Proprietary | Android, iOS, Linux, macOS, Windows | Yes | Local installation with cloud sync |
| Enpass | Proprietary / Freemium | Android, BlackBerry 10, iOS, Windows Store, Windows Phone, macOS, Windows, Linux | Yes | Local installation with cloud sync |
| GNOME Keyring | GPL-2.0-or-later | Unix-like | GNOME Web and Chromium; unofficial add-ons for Firefox | Local installation |
| Intuitive Password | Proprietary / Freemium | Android, iOS, Linux, macOS, Windows, Windows Phone | Yes | Cloud-based |
| KeePass | GPL-2.0-or-later | Windows (unofficial ports: Android, iOS, Linux, macOS, Windows Phone) | Through auto-typing | Local installation, optional file or cloud sync |
| KeePassDX | GPL-3.0-or-later | Android | Yes | Local installation, external sync |
| KeePassXC | GPL-2.0-only or GPL-3.0-only | Windows, Linux, macOS | Yes | Local installation, external sync |
| Keeper | Proprietary / Freemium | Android, iOS, Kindle, Linux, Nook, macOS, Windows, Windows Phone | Yes | Local installation with cloud sync |
| KeeWeb | MIT | Windows, Linux, macOS, web version | Through auto-typing | Local installation with cloud sync, web version |
| Keychain | APSL-2.0 | Linux, iOS (as iCloud Keychain), macOS | In iCloud version | System utility |
| KWallet | LGPL | Unix-like | Konqueror and Chromium; unofficial add-ons for Firefox | Local installation |
| LastPass | Proprietary / Freemium | Cross-platform (browser extension and mobile app) | Yes | Local installation with cloud sync |
| NordPass | Proprietary / Freemium | Android, iOS, macOS, Windows, Linux, browser extensions | Yes | Local installation with zero-knowledge cloud sync |
| pass | GPL-2.0-or-later | Android, FreeBSD, Linux, macOS | Through Firefox and Chromium add-ons | Local installation with git sync |
| Passwords (Apple) | Proprietary | iOS, iPadOS, macOS | Native: Safari; via iCloud Passwords: Firefox, Chrome, Edge | Local installation with cloud sync |
| Password Safe | Artistic-2.0 | Android, iOS, Linux (beta), FreeBSD (beta), Windows (unofficial ports: macOS, Windows Phone) | Through auto-typing | Local installation, optional file or cloud sync |
| Pleasant Password Server | Proprietary | Cross-platform (browser extension and mobile app) | Yes | Local installation |
| Proton Pass | GPL-3.0-or-later | Android, iOS, macOS, Windows, Linux | Yes | Cloud-based |
| RoboForm | Proprietary | Android, iOS, macOS, Windows | Yes | Local installation with cloud sync |
| SafeInCloud | Proprietary | Android, iOS, macOS, Windows | Yes | Local installation with cloud sync |
| SecureSafe | Proprietary | Android, iOS, macOS, Windows | Yes | Local installation with cloud sync, web version |
| Yojimbo | Proprietary | macOS, iPadOS | No | Local installation with cloud sync |
Then:
- Set a master passphrase of 6+ random words. It is the one password you memorise and never reuse anywhere.
- Turn on two-factor authentication for the manager itself.
- Write the master passphrase and recovery codes on paper and store them somewhere physically safe. Not in a notes app. Not in a screenshot.
- Import or re-create accounts, starting with the most important: email, bank, phone carrier, cloud storage.
Use the manager's browser extension to autofill. It only fills on the exact domain the password was saved for, which makes it a quiet phishing filter: if it won't autofill, look hard at the URL.
4. Rotate when it matters, not on a calendar
Forced 90-day changes train people into Summer2026! → Autumn2026!. Current NIST guidance says not to require periodic changes, and to change a password when there's evidence it's compromised.
Change a password immediately when:
- the service announces a breach, or you get a breach alert;
- you typed it into a page you're not sure was real;
- you shared it, or entered it on a device you don't control;
- it's one of your old reused passwords — retire every one of them.
Most managers have a built-in breach / weak / reused password report. Run it, then work through the list.
5. Check for breaches without leaking the password
Have I Been Pwned tells you which breaches your email appeared in. Its Pwned Passwords API checks a password using k-anonymity: you send only the first 5 characters of its SHA-1 hash, and compare the results locally. The password itself never leaves your machine.
# read the password without echoing it or saving it to shell history
read -rs PW
HASH=$(printf '%s' "$PW" | shasum -a 1 | awk '{print toupper($1)}'); unset PW
# only the 5-char prefix is sent
curl -s "https://api.pwnedpasswords.com/range/${HASH:0:5}" | grep -i "${HASH:5}"
# a match prints SUFFIX:COUNT (times seen in breaches). no output = not found
Any match: that password is burned. Replace it everywhere it's used.
6. Add a second factor
A password alone is one lock. A second factor means a stolen password isn't enough. From strongest to weakest:
- Passkeys / hardware security keys (FIDO2, e.g. YubiKey) — bound to the real site's domain, so they can't be phished. Use them wherever offered.
- Authenticator app (TOTP codes) — strong, works offline. Back up the codes or seeds.
- SMS codes — better than nothing, but vulnerable to SIM-swap attacks. Replace them when a better option exists.
Save every account's recovery codes in your password manager or on paper. Losing your second factor without them can lock you out permanently.
7. Security questions are passwords too
Your mother's maiden name and first school are public, or one social media post away. Treat security questions as extra passwords: answer with random strings and store the answers in your manager.
Q: What city were you born in?
A: correct-violet-anchor-ledger ← generated, saved in the vault
8. Lock down the master keys
Your email account can reset almost every other password you own, and your phone number often can too. Give them the strongest protection you have:
- unique long password + passkey or hardware key on your email;
- a carrier account PIN / port-out lock on your phone number;
- remove SMS as a recovery option where the service allows it.
Checklist
| Step | Done when |
|---|---|
| Password manager installed | master passphrase is 6+ random words, 2FA on |
| No reuse | manager's reused-password report is empty |
| Strong passwords | every generated password is 16+ chars or 6+ words |
| Breaches checked | email checked on HIBP, burned passwords replaced |
| Second factor | passkey / hardware key / app on email, bank, manager |
| Recovery | codes stored offline, carrier PIN set |
Unique, long, managed. Do it once, and the next breach headline is someone else's problem.