Skip to content

Secure Python Password Manager. Features PBKDF2 key stretching, Fernet (AES-256) authenticated encryption, and a modern PyQt5 GUI. Your data, your keys.

Notifications You must be signed in to change notification settings

MrRajiii/secure-python-password-manager

Repository files navigation

Secure Password Manager (PyQt5)

Python PyQt5 SQLite Cryptography

A robust, cross-platform desktop application for securely managing user credentials. Built with Python and PyQt5, emphasizing cryptographic best practices.

Features

  • 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.

Security Architecture

This project is designed with a strong focus on data security, using industry-standard primitives from the cryptography library.

  1. 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.
  2. 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).

🛠️ Technologies Used

  • Language: Python 3.x
  • GUI Framework: PyQt5
  • Database: SQLite3
  • Cryptography: cryptography library (PBKDF2, Fernet/AES-256 GCM)

Installation and Setup

  1. Clone the Repository:

    git clone [YOUR_REPO_URL]
    cd [YOUR_REPO_NAME]
  2. Install Dependencies:

    pip install PyQt5 cryptography
  3. Run the Application:

    python password_gui.py

First Run: Initialization

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:

  1. Stage the new files:
    git add .
  2. Commit the final project:
    git commit -m "feat: Final project completion with PyQt5 GUI, full CRUD, and crucial documentation/git setup"
  3. Push to your remote repository:
    git push

About

Secure Python Password Manager. Features PBKDF2 key stretching, Fernet (AES-256) authenticated encryption, and a modern PyQt5 GUI. Your data, your keys.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages