forked from Grow-with-Open-Source/Python-Projects
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
114 lines (77 loc) · 3.25 KB
/
Copy pathREADME
File metadata and controls
114 lines (77 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# 🔐 Secure Password Manager (CLI + GUI)
This is a simple and secure Password Manager built with Python. It includes both a **Tkinter-based GUI (Graphical User Interface)** and a **CLI (Command Line Interface)** version.
---
## 📌 Features
* ✅ Generate strong, random passwords
* ✅ Choose what characters to include (lowercase, uppercase, digits, special characters)
* ✅ Real-time password strength feedback
* ✅ Save passwords with labels (e.g., Gmail, Netflix)
* ✅ Encode/Encrypt passwords for security
* ✅ View saved passwords with automatic decryption
* ✅ GUI built using Python's `tkinter` library
* ✅ CLI version with command-line options using `argparse`
---
## 💡 How It Works
### Tkinter GUI
The graphical interface is built using `tkinter`, Python’s standard GUI toolkit. It provides a clean interface for generating, encrypting, and viewing passwords.
### Generate Password
1. Choose the password length.
2. Select character types using checkboxes.
3. Hit the **Generate Password** button.
4. The password is displayed with its strength (Weak, Medium, or Strong).
5. The password is then **encrypted** and saved to a file.
### View Saved Passwords
1. Click the **View Saved Passwords** button in the GUI.
2. If the encryption key exists, the program decrypts and displays all saved passwords in a pop-up window.
3. If the key is missing or corrupted, an error message is shown.
---
## 🛠️ Technologies Used
| Component | Tool/Library |
|----------|--------------|
| Programming Language | Python |
| GUI Library | Tkinter |
| Encryption | cryptography (Fernet) |
| Encoding (CLI version) | base64 |
| CLI Parser | argparse |
| Version Control | Git |
---
## 🗃️ Project Structure
```bash
Password_Manager/
├── password_manager_gui.py # Tkinter-based GUI application
├── password_manager_cli.py # CLI-based password generator
├── view_passwords_cli.py # View decoded Base64 passwords (CLI)
├── decrypt_passwords_cli.py # Decrypt encrypted passwords (CLI)
├── saved_passwords.txt # File where encrypted passwords are saved
├── secret.key # File containing Fernet encryption key
├── README.md
└── .gitignore
```
---
## ⚠️ Security Note
This project uses **Fernet encryption** to protect your saved passwords.
Files like `secret.key` and `saved_passwords.txt` are excluded from version control using `.gitignore`.
> Do not share your `secret.key` with anyone. If you lose it, saved passwords cannot be decrypted.
---
## 🧠 Ideal For
- Python beginners learning `tkinter`
- Students building secure Python projects
- Learning encryption basics with `cryptography`
- Practicing Git and GitHub workflow with versioned features
---
## ⚙️ Setup Instructions
1. Clone the repo
`git clone https://github.com/Your-Username/Secure_Password_Manager.git`
2. Install dependencies
`pip install cryptography`
3. Run GUI
`python password_manager_gui.py`
4. Or use CLI
`python password_manager_cli.py --length 12 --label Gmail --lower --upper --digits --specials`
---
## ⭐ GitHub Ready
This project was built using proper Git practices:
* Every feature added on a new branch
* Meaningful commit messages
* Clean merge history
---