Skip to content

Commit 862f2fd

Browse files
Add files via upload
1 parent 17566cc commit 862f2fd

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

output.png

197 KB
Loading
3.37 MB
Binary file not shown.

password_generator.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import tkinter as tk
2+
from tkinter import messagebox
3+
import random
4+
import string
5+
6+
class PasswordGeneratorApp:
7+
def __init__(self, root):
8+
self.root = root
9+
self.root.title("Password Generator")
10+
self.root.geometry("400x400")
11+
self.root.resizable(False, False)
12+
13+
# Label for Password Length
14+
self.label1 = tk.Label(self.root, text="Password Length:", font=('Arial', 12))
15+
self.label1.pack(pady=10)
16+
17+
# Entry for Password Length
18+
self.length_entry = tk.Entry(self.root, font=('Arial', 14), width=15)
19+
self.length_entry.pack(pady=5)
20+
21+
# Checkbox for Uppercase Letters
22+
self.uppercase_var = tk.BooleanVar()
23+
self.uppercase_check = tk.Checkbutton(self.root, text="Include Uppercase Letters", variable=self.uppercase_var, font=('Arial', 12))
24+
self.uppercase_check.pack(pady=5)
25+
26+
# Checkbox for Lowercase Letters
27+
self.lowercase_var = tk.BooleanVar()
28+
self.lowercase_check = tk.Checkbutton(self.root, text="Include Lowercase Letters", variable=self.lowercase_var, font=('Arial', 12))
29+
self.lowercase_check.pack(pady=5)
30+
31+
# Checkbox for Digits
32+
self.digits_var = tk.BooleanVar()
33+
self.digits_check = tk.Checkbutton(self.root, text="Include Digits", variable=self.digits_var, font=('Arial', 12))
34+
self.digits_check.pack(pady=5)
35+
36+
# Checkbox for Symbols
37+
self.symbols_var = tk.BooleanVar()
38+
self.symbols_check = tk.Checkbutton(self.root, text="Include Symbols", variable=self.symbols_var, font=('Arial', 12))
39+
self.symbols_check.pack(pady=5)
40+
41+
# Button to Generate Password
42+
self.generate_btn = tk.Button(self.root, text="Generate Password", font=('Arial', 14), command=self.generate_password)
43+
self.generate_btn.pack(pady=20)
44+
45+
# Label to Display Generated Password
46+
self.password_label = tk.Label(self.root, text="Your Password:", font=('Arial', 14))
47+
self.password_label.pack(pady=10)
48+
49+
def generate_password(self):
50+
length = self.length_entry.get()
51+
52+
if not length.isdigit() or int(length) < 1:
53+
messagebox.showerror("Error", "Please enter a valid password length.")
54+
return
55+
56+
length = int(length)
57+
character_pool = ""
58+
59+
if self.uppercase_var.get():
60+
character_pool += string.ascii_uppercase
61+
if self.lowercase_var.get():
62+
character_pool += string.ascii_lowercase
63+
if self.digits_var.get():
64+
character_pool += string.digits
65+
if self.symbols_var.get():
66+
character_pool += string.punctuation
67+
68+
if not character_pool:
69+
messagebox.showerror("Error", "Please select at least one character type.")
70+
return
71+
72+
password = ''.join(random.choice(character_pool) for _ in range(length))
73+
self.password_label.config(text=f"Your Password: {password}")
74+
75+
if __name__ == "__main__":
76+
root = tk.Tk()
77+
app = PasswordGeneratorApp(root)
78+
root.mainloop()

0 commit comments

Comments
 (0)