- Full CRUD Functionality: Easily Create, Read, Update, and Delete credentials.
- Secure Authentication: Uses a single Master Password to unlock the vault.
- Encrypted Storage: All credentials are encrypted before being stored in an SQLite database.
- Professional GUI: Built using PyQt5 for a clean, native desktop look and feel.
This project is designed with a strong focus on data security, using industry-standard primitives from the cryptography library.
- Key Derivation: The Master Password is never stored directly. It is stretched using PBKDF2 with SHA-256 and a high iteration count (480,000+ iterations) and a unique salt to generate a strong, 32-byte encryption key. This process makes brute-force attacks computationally infeasible.
- Authenticated Encryption: All sensitive data (usernames, passwords) is encrypted using AES-256 GCM (via the Fernet specification). This method not only encrypts the data but also ensures its integrity (guaranteeing that the stored data has not been tampered with).
- Language: Python 3.x
- GUI Framework: PyQt5
- Database: SQLite3
- Cryptography:
cryptographylibrary (PBKDF2, Fernet/AES-256 GCM)
-
Clone the Repository:
git clone [YOUR_REPO_URL] cd [YOUR_REPO_NAME] -
Install Dependencies:
pip install PyQt5 cryptography
-
Run the Application:
python password_gui.py
On the first run, the application will detect the missing configuration and prompt you to set your new, secure Master Password.
Now you can run the following commands to add these two new critical files and push everything cleanly:
- Stage the new files:
git add . - Commit the final project:
git commit -m "feat: Final project completion with PyQt5 GUI, full CRUD, and crucial documentation/git setup" - Push to your remote repository:
git push