A secure desktop password manager built with Python and CustomTkinter. Store, manage, and retrieve your passwords locally with encrypted storage and a master password protecting everything.
- Master Password Protection — One password to rule them all, with strength indicator and lockout after failed attempts
- Encrypted Storage — Passwords are encrypted locally using Fernet (AES-128-CBC) via the
cryptographylibrary - Password Strength Checker — Real-time strength feedback when creating or adding passwords
- Favourites — Star your most-used passwords for quick access
- Search — Find saved passwords instantly by service name
- Copy to Clipboard — Click any password to copy it directly
- View/Hide Toggle — Show or hide passwords with a single click
- Collapsible Sidebar — Clean navigation between Home, Add Password, Favourites, Settings, About, and Support
- Password Hints — Set a hint during setup to help recover your master password
- Python 3.10+
-
Clone the repository:
git clone https://github.com/MerlinTheWhiz/password-manager.git cd password-manager -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
-
Install dependencies:
pip install -r requirements.txt
-
Run the app:
python password_manager.py
- On first launch, set a master password — this is the only password you need to remember
- Optionally set a password hint in case you forget it
- Use the sidebar to add new passwords — enter a service name and password, and PassLock checks its strength before saving
- View, edit, delete, or favourite any saved password from the Home screen
- Search for a specific password using the search bar in the sidebar
- Click any password to copy it to your clipboard
- Python — Core language
- CustomTkinter — Modern UI framework built on Tkinter
- Cryptography (Fernet) — AES encryption for password storage
- Pillow — Image handling for UI assets
- Pyperclip — Cross-platform clipboard access
All data is stored locally as JSON files in the project directory:
| File | Purpose |
|---|---|
masterpassword.json |
Hashed master password |
service_passwords.json |
Encrypted saved passwords |
favourites.json |
Favourited services |
hint.json |
Password hint |
key.key |
Encryption key |
None of these files are tracked in version control.