Application en Python
Pourquoi et Comment ?
TéléchargerPourquoi, pour le fun, juste comme ça, une idée qui finalement s'avère être une bonne idée.
Et comment, eh bien voici coment :
#Copyright (c) 2024 Polak-Man#5938
import random
import string
import tkinter as tk
class PasswordGenerator:
def __init__(self, master):
self.master = master
master.title("Générateur de mot de passe aléatoire")
master.geometry("900x450")
# Crée une étiquette pour afficher la longueur du mot de passe
self.length_label = tk.Label(master, text="Longueur du mot de passe :")
self.length_label.pack(anchor=tk.CENTER, pady=10)
# Crée une barre de défilement pour choisir la longueur du mot de passe
self.length_scale = tk.Scale(master, from_=8, to=100, orient=tk.HORIZONTAL, length=600, sliderlength=20, sliderrelief='solid', highlightbackground='black', highlightcolor='red')
self.length_scale.pack(anchor=tk.CENTER, pady=10)
# Crée un bouton pour générer le mot de passe
self.generate_button = tk.Button(master, text="Générer", command=self.generate_password)
self.generate_button.pack(anchor=tk.CENTER, pady=10)
# Crée des boutons pour activer ou non les majuscules, les nombres et les symboles
self.uppercase_var = tk.BooleanVar()
self.uppercase_checkbutton = tk.Checkbutton(master, text="Majuscules", variable=self.uppercase_var)
self.uppercase_checkbutton.pack(anchor=tk.CENTER)
self.digits_var = tk.BooleanVar()
self.digits_checkbutton = tk.Checkbutton(master, text="Nombres", variable=self.digits_var)
self.digits_checkbutton.pack(anchor=tk.CENTER)
self.symbols_var = tk.BooleanVar()
self.symbols_checkbutton = tk.Checkbutton(master, text="Symboles", variable=self.symbols_var)
self.symbols_checkbutton.pack(anchor=tk.CENTER)
# Crée une étiquette pour afficher le mot de passe généré
self.password_label = tk.Label(master, text="")
self.password_label.pack(anchor=tk.CENTER, pady=10, fill=tk.BOTH, expand=True)
# Crée un bouton pour copier le mot de passe généré dans le presse-papiers
self.copy_button = tk.Button(master, text="Copier le mot de passe", command=self.copy_password)
self.copy_button.pack(anchor=tk.CENTER, pady=10)
# Centre verticalement tous les éléments
master.grid_rowconfigure(0, weight=1)
master.grid_rowconfigure(2, weight=1)
master.grid_rowconfigure(3, weight=1)
master.grid_rowconfigure(4, weight=1)
# Génère un mot de passe aléatoire
def generate_password(self):
length = self.length_scale.get()
letters = ''
if self.uppercase_var.get():
letters += string.ascii_uppercase
letters += string.ascii_lowercase
if self.digits_var.get():
letters += string.digits
if self.symbols_var.get():
letters += string.punctuation
password = ''.join(random.choice(letters) for i in range(length))
self.password_label.config(text="Voici votre mot de passe : " + password)
self.password = password
# Copie le mot de passe généré dans le presse-papiers
def copy_password(self):
self.master.clipboard_clear()
self.master.clipboard_append(self.password)
root = tk.Tk()
my_gui = PasswordGenerator(root)
root.mainloop()