Tento skript vytvoří jednoduché GUI s vstupem pro zadání délky hesla a tlačítkem pro generování hesla. Když uživatel stiskne tlačítko, vygenerují se náhodná hesla příslušné délky a zobrazí se na obrazovce.
import tkinter as tk
import random
import string
def generate_passwords():
# Čistí předchozí hesla
for widget in password_frame.winfo_children():
widget.destroy()
# Smyčka pro generování 10 hesel
for i in range(10):
# Délka hesla
password_length = int(length_entry.get())
# Možné znaky pro heslo
password_characters = string.ascii_letters + string.digits + string.punctuation
# Generování hesla
password_list = [random.choice(password_characters) for _ in range(password_length)]
password = "".join(password_list)
# Tlačítko pro zkopírování hesla
password_button = tk.Button(password_frame, text=password, command=lambda p=password: root.clipboard_clear() or root.clipboard_append(p))
password_button.pack()
root = tk.Tk()
root.title("Generátor hesel")
# GUI - layout
length_frame = tk.Frame(root)
generate_frame = tk.Frame(root)
password_frame = tk.Frame(root)
length_frame.pack(padx=15, pady= 15)
generate_frame.pack(padx=15, pady= 15)
password_frame.pack(padx=15, pady= 15)
# Label pro délku hesla
length_label = tk.Label(length_frame, text="Zadejte délku hesla:")
length_label.pack(side=tk.LEFT)
# Vstup pro délku hesla
length_entry = tk.Entry(length_frame)
length_entry.pack(side=tk.LEFT)
# Tlačítko pro generování hesla
generate_button = tk.Button(generate_frame, text="Generovat heslo", command=generate_passwords)
generate_button.pack()
root.mainloop()
Tento kód generuje 10 hesel najednou pro danou délku, kterou uživatel zadá. Hesla se zobrazí pod sebou, takže si uživatel může vybrat, které z nich bude používat.
Vzhledem k vylepšení vzhledu jsem přidal padding (vzdálenost mezi widgety) a vytvořil rámce pro lepší rozvržení widgetů v okně. Ale vzhled GUI je velmi subjektivní a záleží na konkrétním designu, který preferujete.
Tento kód generuje tlačítko pro každé heslo místo pouhého zobrazení textu. Po kliknutí na tlačítko s heslem se heslo zkopíruje do schránky uživatele. Pokud uživatel poté přejde do jiné aplikace a stiskne Ctrl+V, vloží se heslo zkopírované do schránky.
Navíc tento kód nyní před generováním nových hesel odstraní stará tlačítka s hesly, aby se zabránilo jejich hromadění.