Project 1 — Goal: check whether a password is weak, medium, or strong, based on length and the use of numbers, symbols, and uppercase letters.
This submission includes two versions of the same logic:
password-strength-checker/
├── web/
│ └── index.html ← interactive, animated web app (just open in a browser)
├── python/
│ └── password_checker.py ← console version (run with Python)
└── README.md
Double-click index.html (or open it in Chrome/Firefox/Edge) — no install,
no server, no dependencies. Type a password and watch:
- The vault dial fill up and the padlock "unlock" once the password is strong
- A live checklist (length, uppercase, lowercase, number, symbol, not-a-common-password)
- An estimated crack time, so the score means something concrete
- A strong password generator and copy-to-clipboard button
- Contextual tips telling you exactly what to add next
Everything runs client-side in plain HTML/CSS/JavaScript, so it's easy to read, present, and explain line by line.
A plain-Python implementation of the exact same rules, useful for showing the underlying string handling and condition checks clearly.
Run it with:
python password_checker.pyThen type any password to see its score, strength label, checklist, and
suggestions. Type quit to exit.
| Check | Points |
|---|---|
| Length ≥ 8 characters | 20 |
| Length ≥ 12 characters | +15 |
| Length ≥ 16 characters | +10 |
| Contains a lowercase letter | 10 |
| Contains an uppercase letter | 15 |
| Contains a number | 15 |
| Contains a symbol | 15 |
| Found on common-password list | score capped at 20 |
| Score | Strength |
|---|---|
| 0 – 39 | Weak |
| 40 – 69 | Medium |
| 70 – 89 | Strong |
| 90 – 100 | Very Strong |
- String handling — iterating over characters, checking character classes
(
isupper,islower,isdigit, membership in a symbol set) - Condition checks — length thresholds, boolean combinations, capping logic for common passwords
- Security basics — why length matters more than "tricks", why common passwords are dangerous, and how crack-time estimates are calculated (character-set size raised to the power of password length)
- Load the common-password list from a real breached-password dataset (e.g.
rockyou.txt) - Check for keyboard-walk patterns (
qwerty,asdf) or repeated characters (aaaa) - Add a "time to crack against an online attack" estimate (much slower than offline)
- Save a history of checked password scores (never the passwords themselves) to a file