This project is a Password Manager application built using Python and the tkinter
library. It provides functionality for securely managing passwords, including generating, storing, and searching passwords. The application also includes user authentication to ensure only authorized users can access the password manager.
- Users are required to enter a master password to access the application.
- The password entry is validated, and incorrect entries result in an error message.
- User interaction is secured by clearing the input field after an incorrect entry.
- Add Passwords: Save website credentials (website, email, and password).
- Search Passwords: Retrieve credentials for specific websites.
- Partial matches are supported using fuzzy search with regular expressions.
- Results are displayed dynamically in a Listbox for user selection.
- Password Generation: Generate strong, random passwords with a mix of letters, numbers, and symbols. The generated password is copied to the clipboard for convenience.
- Fully interactive user interface built with
tkinter
. - Dynamic centering of application windows for improved usability.
- Listbox integration for displaying multiple search results with selection functionality.
- Error handling and clear feedback to users.
- Python 3.8 or above
Install the following libraries if not already available:
tkinter
(standard library for Python GUIs)pyperclip
(for clipboard functionality)re
(regular expressions for fuzzy search)json
(for data storage and retrieval)
Install missing libraries using:
pip install pyperclip
- main.py: The main application file containing all logic.
- password_manager.json: JSON file for storing password data (created automatically).
- logo.png: Placeholder logo image displayed in the application.
- Clone the repository or copy the project files to your local machine.
- Ensure all dependencies are installed.
- Run the program:
python main.py
- Enter the master password (
admin1234
by default) to access the password manager.
- Launch the application.
- Enter the master password in the login window.
- Press
Enter
or click theLogin
button.
To change the master password, edit the MASTER_PASSWORD
variable in the authenticate
function in main.py
.
- Enter the website name, email/username, and password in the respective fields.
- Click the
Add
button to save the credentials. - The data is stored in
password_manager.json
.
- Leave the "Password" field empty and click the
Generate Password
button. - The generated password will be automatically inserted into the password field and copied to the clipboard.
- Enter the website name in the "Website" field.
- Click the
Search
button. - If a match is found:
- If a single match exists, the details are displayed directly.
- If multiple matches are found, a Listbox appears for selection. Select a match and press
Enter
to view its details.
- The master password is hardcoded as
admin1234
. Change this value in theauthenticate
function to secure your application. - Password data is stored in plaintext JSON format. For enhanced security, consider encrypting the file using libraries like
cryptography
.
- Add user-specific authentication and registration.
- Encrypt stored passwords using a secure encryption algorithm.
- Allow users to update or delete existing credentials.
- Add multi-platform support and a more modern UI framework (e.g., PyQt or Tkinter ttk).
Based on an original concept sourced externally and expanded significantly by Zoulaimi. This version includes enhanced features such as authentication, fuzzy search, dynamic Listbox integration, and improved user interaction.