A full-featured desktop app to store, manage, and protect your passwords using industry-standard encryption and a modern GUI. Built with Python (Tkinter) and MySQL, this vault application ensures your sensitive credentials stay safe and accessible — only to you.
[Click to watch full demo (1 min 26 sec)]
Project.Video.mp4
[App GUI Screenshot] ![]() |
[Encrypted Passwords in MySQL] ![]() |
|---|---|
| Main Vault Interface | Encrypted Passwords Stored in DB |
-
🔐 User Registration and Login
- Master password is securely hashed using PBKDF2 with SHA-256.
- Login protects access to the entire vault.
-
✍️ Save New Credentials
- Store website name, username, and password.
- Passwords are encrypted before saving.
-
👁️ View Password (with Master Password)
- Re-authentication required before revealing stored passwords.
-
✏️ Edit and Delete Credentials (secure)
- Both actions require entering the master password.
-
👁️🗨️ Toggle Password Visibility
- Show/hide password while typing new credentials.
-
🎨 Modern Dark Theme GUI
- Styled using the 'clam' theme for clean and sharp UI.
- All widgets follow a black-grey-white color scheme.
gui.py– GUI layout and event handling usingtkinter. Manages input fields, buttons, layout structure, and opens modal windows (e.g., for master password, edit, delete).app.py– Main launcher file that starts the application and integrates all modules.db.py– Handles all MySQL database operations:- Connecting to the database
- Inserting, updating, deleting credentials and user data
encryption.py– Handles all security-related logic:- Master password is hashed using PBKDF2 with SHA-256
- Credential passwords are encrypted and decrypted using Fernet (symmetric encryption)
db_setup.sql– SQL file to set up the MySQL database:- Creates tables like
users,credentials, andsecurity_questions - Defines relationships and constraints
- Creates tables like
requirements.txt– Lists all the Python dependencies required to run the project:tkintercryptographymysql-connector-python
README.md– You’re reading it! 😄 This file explains the project, features, setup instructions, and usage.
| Layer | Technology |
|---|---|
| Language | Python 3.x |
| GUI | Tkinter + tk |
| DB | MySQL |
| Encryption | cryptography.fernet for credentials |
| Hashing | PBKDF2-HMAC-SHA256 for master password |
| UI Theme | clam dark theme using ttk.Style |
-
Master Password
- Stored as a salted hash using
PBKDF2-HMAC-SHA256with a unique salt per user.
- Stored as a salted hash using
-
Stored Credentials
- Passwords encrypted using Fernet symmetric encryption (AES under the hood).
- Keys securely derived and stored in MySQL.
git clone https://github.com/DevanshuHB cd password-vault
- Make sure MySQL is installed and running.
- Run the provided SQL file:
SOURCE db_setup.sql;
Install the required Python libraries using:
pip install -r requirements.txtMake sure you have Python 3.x installed. If pip doesn't work, try:
pip3 install -r requirements.txt💡 This installs all required modules like
tkinter,mysql-connector-python, etc.
python gui.py- Never share your .env file or database credentials publicly.
- Avoid pushing pycache, .db files, or any sensitive tokens if added later.
- 🔍 Add search functionality to find credentials quickly.
- ❓ Implement "Forgot Master Password" feature using security questions.
- 📦 Package the app as an executable for easier distribution.
- 🌙 Add dark/light theme toggle for user preference.
- 🔒 Improve encryption strategy with salting per credential.
🧑🎓 2nd Year Engineering Student @ SIES GST
💻 Python Developer | Cybersecurity Enthusiast |
If this helped you, star the repo and consider sharing it — every ⭐ counts!

