From d5866d714c0189464c5830b1c17fe9e249ea692e Mon Sep 17 00:00:00 2001 From: "philippot.m" <> Date: Fri, 4 Apr 2025 19:56:17 +0200 Subject: [PATCH] projet tkinter mot de passe --- mot_de_passe.py | 200 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 mot_de_passe.py diff --git a/mot_de_passe.py b/mot_de_passe.py new file mode 100644 index 0000000..43993f2 --- /dev/null +++ b/mot_de_passe.py @@ -0,0 +1,200 @@ +from tkinter import * +from random import randint +from threading import Thread +from time import sleep +from winsound import * + +class Visage: + def __init__(self,uncolor,uncanvas,unx,uny,uncoef): + self.c=uncanvas + self.color=uncolor + self.x=unx + self.y=uny + self.coef=uncoef + ###################Création des yeux############# + eye_y=20 + self.eye_1=self.c.create_oval(self.x+10+self.coef, + self.y+eye_y, + self.x+30+self.coef, + self.y+eye_y+20, + fill=self.color) + eye_2_x=40 + self.eye_2=self.c.create_oval(self.x+eye_2_x+self.coef, + self.y+eye_y, + self.x+eye_2_x+20+self.coef, + self.y+eye_y+20, + fill=self.color) + + ###################Création du visage et bouche############# + self.vis=self.c.create_oval(self.x+self.coef, + self.y, + self.x+70+self.coef, + self.y+70) + + self.sourir=self.c.create_arc(self.x+10+self.coef, + self.y+30, + self.x+60+self.coef, + self.y+60, + start=0, + extent=-180, + style=ARC, + width=3) + + def change_color(self,color): + self.c.itemconfigure(self.sourir,outline=color) + self.c.itemconfigure(self.vis,outline=color) + self.c.itemconfigure(self.eye_1,outline=color) + self.c.itemconfigure(self.eye_2,outline=color) + +class Idiot: + def __init__(self,uncolor,uncanvas,unx,uny): + self.x=unx + self.y=uny + self.color=uncolor + self.c=uncanvas + self.fond=self.c.create_rectangle(0,0,455,605) + self.idiot_text=self.c.create_text((225, 15), fill="#000000", text="You are an idiot",font= 'Impact 20') + ##########################Création des trois visages################### + self.idiot_1=Visage(self.color,self.c,self.x,self.y,0) + self.idiot_2=Visage(self.color,self.c,self.x,self.y,150) + self.idiot_3=Visage(self.color,self.c,self.x,self.y,300) + + def change_color(self,color): + if color=="#ffffff": + self.c.configure(bg="#000000") + else: + self.c.configure(bg="#ffffff") + self.c.itemconfigure(self.idiot_text ,fill=color) + self.idiot_1.change_color(color) + self.idiot_2.change_color(color) + self.idiot_3.change_color(color) + +class Anim_idiot(Thread): + def __init__(self,vis): + Thread.__init__(self) + self.idiot=vis + + def run(self): + while True: + self.idiot.change_color("#000000") + sleep(0.5) + self.idiot.change_color("#ffffff") + sleep(0.5) + +def gen_password(): + lst_c_sp="""&àç_-èé"*§@µ^¨$£=,.œ""" + lst_let="azertyuiopqsdfghjkwlxmcvbn" + lst_numb="1230456789" + + nb_c_sp_mp=nb_c_sp.get() + nb_maj_mp=nb_maj.get() + nb_chif_mp=nb_chif.get() + nb_car_mp=nb_car.get() + nb_let_mp=nb_car_mp-(nb_c_sp_mp+nb_maj_mp + nb_chif_mp) + + password="" + lst_car_tir=[0,1,2,3] + #C'est moche. Regarde les caractère non utilisé + if nb_c_sp_mp==0: + lst_car_tir.remove(0) + if nb_maj_mp==0: + lst_car_tir.remove(1) + if nb_chif_mp==0: + lst_car_tir.remove(2) + if nb_let_mp ==0: + lst_car_tir.remove(3) + + if nb_c_sp_mp+nb_maj_mp + nb_chif_mp<=nb_car_mp: + while nb_chif_mp!=0 or nb_c_sp_mp!=0 or nb_chif_mp !=0 or nb_car_mp!=0: + car_aj=lst_car_tir[randint(0,len(lst_car_tir)-1)]#prend un caractère aux hasard parmi ceux réstant + + if car_aj==0 and nb_c_sp_mp>0: + password=password+lst_c_sp[randint(0,len(lst_c_sp)-1)] + nb_c_sp_mp=nb_c_sp_mp-1 + nb_car_mp=nb_car_mp-1 + if nb_c_sp_mp==0: + lst_car_tir.remove(0) + + elif car_aj==1 and nb_maj_mp>0: + password=password+lst_let[randint(0,25)].upper() + nb_maj_mp=nb_maj_mp-1 + nb_car_mp=nb_car_mp-1 + if nb_maj_mp==0: + lst_car_tir.remove(1) + + elif car_aj==2 and nb_chif_mp>0: + password=password+lst_numb[randint(0,9)] + nb_chif_mp=nb_chif_mp-1 + nb_car_mp=nb_car_mp-1 + if nb_chif_mp==0: + lst_car_tir.remove(2) + + + elif car_aj==3 and nb_let_mp>0: + password=password+lst_let[randint(0,25)] + nb_let_mp=nb_let_mp-1 + nb_car_mp=nb_car_mp-1 + if nb_let_mp==0: + lst_car_tir.remove(3) + lab_mot_de_passe.config(text="Mot de passe:"+password) + else: + you_are_an_idiot() + +def mot_de_passe_hash(password): + fich_pasw=open("Fichier_de_mot_de_passe_hasher.txt","w") + fich_pasw.write(str(hash(password))) + +def you_are_an_idiot(): + fenetre_idiot=Tk() + fenetre_idiot.title("You are an idiot") + fenetre_idiot.protocol("WM_DELETE_WINDOW",double) + fenetre_idiot.grid() + idiot_can=Canvas(fenetre_idiot, width=450, height=100,bg="#ffffff") + idiot_can.grid(row=1,column=1) + idiot_var=Idiot("#000000",idiot_can,20,30) + idiot_anime=Anim_idiot(idiot_var) + idiot_anime.start() + + fenetre_idiot.mainloop() + +def double(): + you_are_an_idiot() + you_are_an_idiot() + +fenetre=Tk() +fenetre.title("Créateur de mot de passe") +fenetre.configure(bg = "#3356ff") +fenetre.grid() +###########Nombre de majuscule############## +lab_nb_maj=Label(text="Nombre de majuscule",bg="#3356ff") +lab_nb_maj.grid(row=1,column=1,padx=3) +nb_maj=IntVar() +entry_nb_maj=Entry(textvariable=nb_maj,bd=5) +entry_nb_maj.grid(row=2,column=1,padx=3) + +#######Nombre de caractère speciaux######### +lab_nb_c_sp=Label(text="Nombre de caractères spéciaux",bg="#3356ff") +lab_nb_c_sp.grid(row=1,column=2,padx=3) +nb_c_sp=IntVar() +entry_nb_c_sp=Entry(textvariable=nb_c_sp,bd=5) +entry_nb_c_sp.grid(row=2,column=2,padx=3) + +##############Nombre de chiffre############# +lab_nb_chif=Label(text="Nombre de chiffres",bg="#3356ff") +lab_nb_chif.grid(row=1,column=3,padx=3) +nb_chif=IntVar() +entry_nb_chif=Entry(textvariable=nb_chif,bd=5) +entry_nb_chif.grid(row=2,column=3,padx=3) + +#############Nombre de caractère########### +lab_nb_car=Label(text="Nombre de caractères",bg="#3356ff") +lab_nb_car.grid(row=1,column=4,padx=5) +nb_car=IntVar() +entry_nb_car=Entry(textvariable=nb_car,bd=5) +entry_nb_car.grid(row=2,column=4,padx=5) +################################### +buton_mot_de_passe=Button(text="Creer mot de passe",command=gen_password) +buton_mot_de_passe.grid(row=4,column=1,columnspan=4) +lab_mot_de_passe=Label(text="Mot de passe:",bg="#3356ff") +lab_mot_de_passe.grid(row=5,column=1,columnspan=4) +fenetre.mainloop() \ No newline at end of file