A fully polished, secure password manager built with Python and Tkinter — featuring master password login, encryption, password generation, credential storage, and more.
🛠️ Note: This is the desktop GUI version of my Password Manager project.
✅ A more advanced, full-stack Web Version with added features and live deployment is also available.
-
Master Password Login
- Secure entry gate using a hashed password stored in
config.json
- Prevents unauthorized access to saved credentials
- Secure entry gate using a hashed password stored in
-
Encrypted Credential Storage
- Uses
cryptography.fernet
to encrypt all emails and passwords - Data is saved in a JSON file in the
data/
folder
- Uses
-
Password Generator
- Creates strong, random passwords with one click
- Automatically copied to clipboard
-
CRUD Functionality
- Add, search, and delete credentials
- Handles multiple accounts for the same website
- Optional dropdown selection for duplicate entries
-
Master Password Reset
- Secure flow to update the stored master password with re-authentication
-
Modern UI
- Clean, organized interface using
ttk
styling - Show/hide password toggle
- Dialogs for errors, confirmations, and success states
- Clean, organized interface using
- Python 3
- Tkinter / ttk
cryptography
(Fernet encryption)werkzeug.security
(password hashing)json
(data handling)os
(safe file creation and paths)
password-manager-gui/
├── app.py # Clean launcher for the app
├── ui.py # Main GUI logic
├── login.py # Master password entry window
├── data_manager.py # Handles file I/O
├── password_logic.py # Business logic and validation
├── password_generator.py # Random password generation
├── encryption.py # AES-style encryption with Fernet
├── config.json # Stores hashed master password (ignored in Git)
├── data/
│ └── passwords.json # Encrypted credential store (optional in Git)
├── screenshot_login.png # Screenshot of login screen
├── screenshot_main.png # Screenshot of main app
├── demo.gif # Demo showing full feature flow
├── requirements.txt # Dependency list for pip install
├── .gitignore
└── README.md
- Built secure desktop apps using Tkinter and modular code design
- Applied AES-level encryption via
cryptography.fernet
- Implemented secure password hashing with
werkzeug
- Designed user flows with validation, confirmation, and error handling
- Translated this architecture into a full-stack Flask web app for deployment
- Clone the repo:
git clone https://github.com/Cyber-Security-Tech/password-manager-gui.git
cd password-manager-gui
- Install requirements:
pip install -r requirements.txt
- Run the app:
python app.py
config.json
(master password hash) is not tracked for securitydata/passwords.json
is ignored to prevent sensitive data exposure
- Add categories or tags for saved credentials
- Add export/import functionality for encrypted vaults
- Add password update support for existing entries
- Add usage analytics (offline-safe)
- Build mobile version in Kivy or web version (✅ already done)
The full-stack, deployed web version is here:
👉 Password Manager Web App
It includes:
- User registration & login
- Vault encryption
- Responsive web UI
- Deployed on Render