Pietrob5 / Password-Manager

A simple password manager that uses encription with python
1 stars 3 forks source link
encryption encryption-decryption python

Password Manager

image

Overview

This project is a password manager application developed in Python, featuring a GUI interface for enhanced user convenience and accessibility. The GUI is implemented using tkinter, and all core functionalities are designed to ensure a seamless and consistent user experience.

Passwords are securely encrypted using the cryptography.fernet module, which employs AES encryption. The master password is used solely to generate encryption keys and is never stored in the database. The database is now hosted on an Aiven server, allowing users to securely access their passwords from multiple devices with ease. Multiple user accounts are supported, each with its own encrypted database.

The application can be packaged into an executable file (pm_gui.exe) using the following command:

pyinstaller pm_gui.py --onefile --noconsole

Users can navigate between different features using the buttons at the top of the GUI or by pressing function keys F1-F9. When one or more passwords are displayed, users can copy the desired password to the clipboard for easy pasting.

Features

Database Hosting

The application uses a cloud-hosted database powered by Aiven, enabling users to:

During registration, the master password is used to encrypt the name of the user’s specific database, ensuring that each user’s information remains private and secure.

Important Notes:

Menu Options

Register New Account

Insert New Credentials

Search for an Existing Password

Modify an Existing Password

Delete an Existing Password

View All Entries in the Database

Find Services by Email

Delete All Entries

Credit Card Management

Security Considerations

Encryption

Database Access

Login and Data Flow

  1. Account Registration: A new account is created with a unique username and master password. The master password is used to encrypt the user’s database name.
  2. Login: The user logs in with their username and master password. The password decrypts the database name, providing access to the user's information.
  3. Database Operations: All operations (e.g., adding, retrieving, modifying passwords) are performed on the user-specific encrypted database.

This structure ensures that even if multiple users are accessing the application, their data remains isolated and encrypted.

Simple scheme of Login/Signup: image

Error Handling

Important Considerations

By implementing a secure, cloud-hosted database and robust encryption, this password manager allows users to manage their credentials across multiple devices while maintaining a high level of data security.