This is a Password Manager built with Python and Tkinter, designed to help users securely store and generate passwords locally. The application allows users to enter, save, and search for their website credentials (username and password) with the option to generate strong passwords. The project demonstrates the use of Object-Oriented Programming (OOP), graphical user interfaces (GUI), file handling in Python, and JSON for data storage.
- Password Generation: Generates secure random passwords with a combination of lowercase, uppercase, numbers, and special characters.
- Password Saving: Saves entered passwords to a
data.jsonfile, allowing users to retrieve their saved passwords later. - Password Validation: Ensures that generated passwords meet common security requirements such as length and character variety.
- Password Search: Quickly search for saved credentials by entering the website name in the search bar.
- GUI Interface: Provides an easy-to-use graphical interface for interacting with the password manager.
- JSON Data Storage: Credentials are stored in a structured JSON format for efficient management and retrieval.
- Python 3.x
pyperclip(install viapip install pyperclip)tkinter(pre-installed with Python)
Click here for detailed instructions
-
Start the Application:
- Run the
main.pyscript using Python. This will open the password manager GUI.
- Run the
-
Input:
- Website: Enter the website for which you're saving credentials.
- Username: Enter the associated username or email address.
- Password: Enter the password for the website or generate a new one using the "Generate Password" button.
-
Functionality:
-
Click the "Generate Password" button to generate a new password, which will automatically be copied to your clipboard.
-
After filling in the details, click the "Add" button to save the credentials to
data.json. -
Use the "Search" button to find credentials for a specific website. Enter the website name in the Website field, and a popup will display the corresponding email and password if found.
-
-
Empty Fields Warning:
The project consists of several files. Here is a breakdown of each file and its purpose:
Click here for file breakdown
- Purpose: Contains the core logic for the Password Manager app, handling GUI elements, user inputs, and password management.
- Key Functions:
__init__(self): Initializes the app and sets up the main window, labels, entry boxes, and buttons.generate_password(self): Generates a random password and inserts it into the password entry box.save(self): Saves the entered data (website, username, and password) todata.json.search(self): Searches for a website in the JSON file and displays the associated email and password.password_validation(self): Validates the password to meet security requirements using a regex pattern.
- Purpose: Stores constant values like the font name used in the app.
- Purpose: Stores the saved website credentials (website, username, and password) in a structured JSON format.
- Purpose: The image file for the logo that is displayed on the app's GUI.
- Clone or download the project files.
- Ensure Python 3.x is installed on your computer.
- Open a terminal or command prompt and navigate to the project directory.
- Run the following command to start the application: python main.py
Click here for possible future improvements
- Improvement 1: Encrypt the saved passwords for enhanced security.
- Improvement 2: Allow the user to edit or delete saved entries.
- Improvement 3: Implement a password strength checker that gives feedback to the user.
- Improvement 4: Allow users to categorize or tag saved passwords for easier organization.
This project was created as part of a personal project to learn about GUI development and password management using Python and Tkinter. Thank you to the Python community for providing resources and libraries that made this project possible.
Click here to view change log
- New Features:
- Changed file format from
.txttodata.jsonfor structured storage. - Added a search functionality to retrieve credentials by website name.
- Changed file format from
- Initial Release: Basic functionality including password generation, saving, and GUI setup.
- No known issues at this time.