Disclaimer: This project has been prepared for academic and personal purposes only, and represents the sole individual work of the author named above. No part of this project may be copied, reproduced, quoted, distributed, or used in any form — in whole or in part — without prior written permission from the author.
- Abstract
- Introduction
- Problem Statement
- Project Objectives
- Scope of the Project
- Literature Review
- System Analysis
- System Design
- Technologies and Tools
- Database Design
- Security Techniques Used
- Implementation
- Testing and Results
- Challenges Faced
- Future Improvements
- Conclusion
- References
- Contact
This project presents a secure Password Manager application that stores user credentials inside an encrypted vault. The system uses bcrypt hashing for securing the master password and AES-based encryption for protecting stored passwords. The application includes authentication, credential management, encrypted storage, and a modern graphical user interface. The project demonstrates important cybersecurity concepts including password security, encryption at rest, salting, authentication, and secure local storage.
In the modern digital era, users manage many online accounts including banking systems, social media platforms, educational services, and email accounts. Managing passwords manually often leads to weak security practices such as password reuse or storing passwords in unsafe locations.
A password manager solves these problems by securely storing credentials inside an encrypted vault protected by a single master password.
This project aims to develop a secure desktop password manager using Python and modern cryptographic techniques.
Many users face difficulties managing multiple strong passwords. Common insecure practices include:
- Writing passwords in notebooks
- Saving passwords in plain text files
- Reusing the same password
- Using weak passwords
These practices increase the risk of unauthorized access and cyberattacks. Therefore, there is a need for a secure system that can safely store passwords using encryption and authentication mechanisms.
- Build a secure password vault.
- Protect the master password using bcrypt hashing.
- Encrypt stored passwords using AES encryption.
- Create a modern and user-friendly interface.
- Allow users to add, update, search, and delete credentials securely.
- Apply cybersecurity best practices in secure storage.
The project focuses on:
- Local desktop password management
- Secure authentication
- Encryption of stored credentials
- SQLite database storage
- Secure password retrieval
The project does not include:
- Cloud synchronization
- Online account registration
- Multi-user support
Password managers are widely used cybersecurity tools that help users maintain strong and unique passwords for different services. Modern password managers use cryptographic techniques such as:
- Password hashing
- AES encryption
- Key derivation
- Salting
bcrypt is considered one of the strongest password hashing algorithms because it protects against brute-force attacks.
AES encryption is widely used because of its strong security and efficiency in protecting sensitive information.
The system should:
- Authenticate users
- Encrypt passwords
- Store credentials securely
- Allow credential management
- Search stored records
The system should:
- Be secure
- Be easy to use
- Have fast response time
- Provide data confidentiality
- Prevent unauthorized access
The system consists of four main modules:
- Authentication Module Responsible for login and master password verification.
- Encryption Module Responsible for AES encryption and decryption.
- Database Module Responsible for SQLite storage operations.
- User Interface Module Responsible for the graphical interface.
| Technology | Purpose |
|---|---|
| Python | Main programming language |
| SQLite | Local database |
| bcrypt | Password hashing |
| Cryptography Library | AES encryption |
| CustomTkinter | Modern graphical UI |
| PBKDF2 | Key derivation |
| Field | Type |
|---|---|
| id | INTEGER |
| master_hash | BLOB |
| salt | BLOB |
| Field | Type |
|---|---|
| id | INTEGER |
| website | TEXT |
| username | TEXT |
| password | TEXT |
| notes | TEXT |
| created_at | TIMESTAMP |
The master password is hashed using bcrypt before storage, Example: bcrypt.hashpw(password.encode(), bcrypt.gensalt()) This prevents storing plain-text passwords.
A random salt is generated for each user to increase password security and prevent rainbow table attacks.
All stored credentials are encrypted before being saved in the database. Encrypted passwords cannot be read directly from the database.
All passwords remain encrypted while stored locally.
The SQLite database was created with two tables:
- users
- credentials
The application starts with a secure login screen.
bcrypt hashing is used for verifying the master password.
The dashboard allows users to manage credentials securely.
Users can add website credentials securely.
The application includes a strong password generator.
Credentials are decrypted only after successful login.
Passwords appear encrypted inside SQLite.
| Test Case | Result |
|---|---|
| User Login | Passed |
| Password Encryption | Passed |
| Add Credential | Passed |
| Update Credential | Passed |
| Delete Credential | Passed |
| Search Function | Passed |
| Password Generator | Passed |
| Security Feature | Result |
|---|---|
| bcrypt Hashing | Successful |
| Salt Generation | Successful |
| AES Encryption | Successful |
| Unauthorized Access Prevention | Successful |
Some challenges during development included:
- Managing encryption keys securely
- Designing a professional UI
- Handling password encryption/decryption
- Organizing database operations
- Preventing data corruption
Future enhancements may include:
- Cloud synchronization
- Two-factor authentication
- Browser extension support
- Mobile application version
- Biometric authentication
- Backup and recovery system
The Password Manager with Encryption project demonstrates how cybersecurity concepts can be applied in a real-world application. The system securely stores credentials using hashing and encryption techniques while providing a modern user interface and secure local storage. The project successfully achieved its objectives and provided practical implementation of important cybersecurity principles.
- Python Official Documentation
- SQLite Documentation
- bcrypt Documentation
- Cryptography Library Documentation
- OWASP Password Storage Cheat Sheet
- NIST AES Encryption Standards
- Cybersecurity Fundamentals Overview
For questions, feedback, or support:
Mohammed Abdulrahman Alalyani
- Email: malredfan@gmail.com
- Instagram: @malredfan
- X: @malredfan
- LinkedIn: malredfan









