Skip to content

techgitp/pasword-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

import random import string import tkinter as tk from tkinter import messagebox

def generate_password(length, use_letters, use_numbers, use_symbols): character_set = ''

if use_letters:
    character_set += string.ascii_letters
if use_numbers:
    character_set += string.digits
if use_symbols:
    character_set += string.punctuation

if not character_set:
    raise ValueError("At least one character type must be selected.")

password = ''.join(random.choice(character_set) for _ in range(length))
return password

def on_generate(): try: length = int(length_entry.get()) use_letters = letters_var.get() use_numbers = numbers_var.get() use_symbols = symbols_var.get()

    password = generate_password(length, use_letters, use_numbers, use_symbols)
    password_entry.delete(0, tk.END)
    password_entry.insert(0, password)
except ValueError as e:
    messagebox.showerror("Error", str(e))

def copy_to_clipboard(): root.clipboard_clear() root.clipboard_append(password_entry.get()) messagebox.showinfo("Copied", "Password copied to clipboard!")

GUI Setup

root = tk.Tk() root.title("Password Generator")

tk.Label(root, text="Password Length:").grid(row=0, column=0) length_entry = tk.Entry(root) length_entry.grid(row=0, column=1)

letters_var = tk.BooleanVar() tk.Checkbutton(root, text="Include Letters", variable=letters_var).grid(row=1, columnspan=2)

numbers_var = tk.BooleanVar() tk.Checkbutton(root, text="Include Numbers", variable=numbers_var).grid(row=2, columnspan=2)

symbols_var = tk.BooleanVar() tk.Checkbutton(root, text="Include Symbols", variable=symbols_var).grid(row=3, columnspan=2)

tk.Button(root, text="Generate Password", command=on_generate).grid(row=4, columnspan=2)

tk.Label(root, text="Generated Password:").grid(row=5, column=0) password_entry = tk.Entry(root) password_entry.grid(row=5, column=1)

tk.Button(root, text="Copy to Clipboard", command=copy_to_clipboard).grid(row=6, columnspan=2)

root.mainloop()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors