Amazing-Python-Scripts
85 строк · 2.4 Кб
1import random2import pyperclip3from tkinter import *4from tkinter.ttk import *5
6
7def getStrength():8entry.delete(0, END)9length = var1.get()10lower = "abcdefghijklmnopqrstuvwxyz"11upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"12digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !@#$%^&*()"13password = ""14
15# if strength selected is low16if var.get() == 1:17for i in range(0, length):18password = password + random.choice(lower)19return password20
21# if strength selected is medium22elif var.get() == 0:23for i in range(0, length):24password = password + random.choice(upper)25return password26
27# if strength selected is strong28elif var.get() == 3:29for i in range(0, length):30password = password + random.choice(digits)31return password32else:33print("Please choose an option")34
35
36# Function for generation of password
37def generate():38password1 = getStrength()39entry.insert(10, password1)40
41
42# Function for copying password to clipboard
43def copy():44random_password = entry.get()45pyperclip.copy(random_password)46
47
48# create GUI window
49root = Tk()50var = IntVar()51var1 = IntVar()52
53
54# Title of the GUI window
55root.title("Password Generator")56
57# create label for length of password
58c_label = Label(root, text="Length")59c_label.grid(row=0)60copy_button = Button(root, text="Copy", command=copy)61copy_button.grid(row=0, column=2)62generate_button = Button(root, text="Generate", command=generate)63generate_button.grid(row=0, column=3)64
65radio_low = Radiobutton(root, text="Low", variable=var, value=1)66radio_low.grid(row=1, column=2, sticky='E')67radio_middle = Radiobutton(root, text="Medium", variable=var, value=0)68radio_middle.grid(row=1, column=3, sticky='E')69radio_strong = Radiobutton(root, text="Strong", variable=var, value=3)70radio_strong.grid(row=1, column=4, sticky='E')71combo = Combobox(root, textvariable=var1)72combo['values'] = (8, 9, 10, 11, 12, 13, 14, 15, 16,7317, 18, 19, 20, 21, 22, 23, 24, 25,7426, 27, 28, 29, 30, 31, 32)75combo.current(0)76combo.bind('<<ComboboxSelected>>')77combo.grid(column=1, row=0)78Random_password = Label(root, text="Generated password", padding=5)79Random_password.grid(row=1)80entry = Entry(root)81entry.grid(row=1, column=1)82
83
84# run the GUI continuously
85root.mainloop()86