Skip to content

nikolapetrovic01/passwordSafeHouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Password Safe House

A secure desktop credential manager built with Python and PyQt6. This project serves as a practical implementation of local data encryption, exploring how to safely handle sensitive user information within a GUI environment.


🚀 Key Features

  • Local-First Security Your credentials never touch the cloud; everything is stored locally on your machine.

  • Fernet Encryption Implements AES-128 in CBC mode via the cryptography library to ensure data remains unreadable without the encryption key.

  • Dynamic Card UI An interactive dashboard that automatically arranges credentials in a clean grid using custom PyQt6 widgets.

  • Automated Key Management Handles encryption key generation and secure storage in system-protected folders (Local AppData on Windows).


🤖 Automation & Synchronization

To handle data persistence without manual intervention, the project includes a Windows Command script (.bat) for automated database uploads.

Script Workflow:

  1. Environment Initialization: Automatically navigates to the project directory and activates the Python Virtual Environment.
  2. Execution: Runs the background Python synchronization script.
  3. Logging: Records all activity, including timestamps and error codes, into backup_log.txt.
  4. Error Handling: Detects failed uploads and captures traceback errors for debugging.

🛠️ Tech Stack

  • Programming Language: Python 3.x

  • GUI Framework: PyQt6

  • Encryption Logic: Cryptography (Fernet)

  • Storage Format: Encrypted JSON


📥 Installation & Usage

1. Prerequisites

Ensure you have Python 3.9+ installed:

bash python --version

2. Setup Clone the repository and install the required dependencies:

bash git clone https://github.com/nikolapetrovic01/PasswordSafeHouse.git cd PasswordSafeHouse pip install PyQt6 cryptography


🔒 Security Architecture The application ensures that passwords are never stored in plain text.

  • Key Generation: On the first run, the app generates a unique encryption key (key.key).

  • Isolation: The key is stored in a separate directory from the application data to prevent accidental exposure.

  • Encryption Flow: 1. The Credential object is serialized. 2. Data is encoded to UTF-8. 3. The Fernet instance encrypts the string into a secure byte-token. 4. The token is saved into a local JSON file.


📈 Future Improvements & Roadmap

Feature The Plan
1. Master Password Add a login screen to prevent unauthorized app access.
2. Masked Data Entry Hide sensitive text by default in the UI.
3. Backup Integration Fully connect the "Save" and "Load" menu actions to the file system.

About

A secure, local-first password manager built with Python and PyQt6. Features include Fernet (AES-128) encryption, automated backup scripts with logging, and a dynamic grid-based UI for credential management.

Topics

Resources

Stars

Watchers

Forks

Contributors