A GUI-based password manager built with Tkinter that generates, saves, and retrieves passwords for websites.
- Generate strong random passwords (8-10 letters, 2-4 numbers, 2-4 symbols)
- Automatically copy generated passwords to clipboard
- Save website credentials to a JSON file
- Search for saved credentials by website name
- Simple GUI interface with error handling
- Python 3.x
- Required Python packages:
tkinter(usually included with Python)pyperclip
- Required asset:
logo.png(200x200 pixel image file)
- Clone the repository:
git clone https://github.com/yourusername/password-manager.git
cd password-manager- Install dependencies:
pip install pyperclip- Ensure
logo.pngis in the project directory
- Run the application:
python password_manager.py- Use the GUI:
- Enter a website name
- Generate a password or enter your own
- Click "Add" to save
- Use "Search" to retrieve saved credentials
- Password Generation: Creates random passwords with:
- 8-10 letters (upper/lowercase)
- 2-4 numbers
- 2-4 symbols (!#$%&()*+)
- Storage: Saves credentials in
pw_file.json - Search: Retrieves and displays saved credentials
- Validates input to prevent empty fields
password_manager.py: Main application filelogo.png: Lock icon for GUI (required)pw_file.json: Generated file for storing credentials
- Website entry field
- Email/Username field (pre-filled with default email)
- Password entry field
- Generate Password button
- Search button
- Add button
- Logo display
Saved in pw_file.json as:
{
"website": {
"username": "email@example.com",
"password": "generated_password"
}
}- Default email: "rahimonkomiljonov06@gmail.com"
- Passwords are automatically copied to clipboard when generated
- Error handling for empty fields and missing file
- Responsive grid layout with proper spacing
- Requires
logo.pngin the same directory
pyperclip
- Modify
username_entry.insert()for different default email - Adjust password generation parameters in
generate_password() - Change window title or button widths
- Update logo file path/name if different
- Basic search functionality (case-sensitive)
- No encryption of stored passwords
- Single-user focus
- Requires manual JSON file management
This is a basic password manager for educational purposes. For real-world use, consider:
- Adding encryption
- Implementing secure file handling
- Adding user authentication