1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import uuid
import hashlib
from Tkinter import *
from tkMessageBox import *
def hpassw(password):
"""Permet hacher votre mot de passe"""
salt = uuid.uuid4().hex
return hashlib.sha1(salt.encode() + password.encode()).hexdigest()+ ':' + salt
def check_pass(hashed_password, user_password):
password, salt = hashed_password.split(':')
return password == hashlib.sha1(salt.encode() + user_password.encode()).hexdigest()
def check(hashed_password, user_password):
"""Check le mot de passe entré dans le Gui"""
password, salt = hashed_password.split(':')
if check_pass(hashed_pass, user_password):
# le mot de passe est bon : on affiche une boîte de dialogue puis on ferme la fenêtre
showinfo('Résultat','Mot de passe correct.\nAu revoir !')
Window.destroy()
else:
# le mot de passe est incorrect : on affiche une boîte de dialogue
showwarning('Résultat','Mot de passe incorrect.\nVeuillez recommencer !')
mdp.set('')
new_password = raw_input("Entrez votre mot de passe:\n")
hashed_pass = hpassw(new_password)
Window = Tk()
Window.title('Authentification')
Label1 = Label(Window, text = 'Mot de passe')
Label1.pack(side = LEFT, padx = 5, pady = 5)
mdp = StringVar()
Champ = Entry(Window, textvariable = mdp, show='*', bg = 'bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = LEFT, padx = 5, pady = 5)
password = mdp.get()
Valider = Button(Window, text='Valider', command=lambda: check(hashed_pass, password))
Valider.pack(side = LEFT, padx= 5, pady=5)
Exit = Button(Window, text='Quitter', command=Window.destroy)
Exit.pack(side= LEFT, padx=5, pady = 5)
call = Label(Window, textvariable =mdp, fg='bisque', bg='green')
call.pack(side = LEFT, padx = 5, pady = 5)
Window.mainloop() |
Partager