Bonjour,

Je suis débutant en python et j'essaye de créer un petit programme permettant d'utiliser des mot de passe et de les comparer mais j'ai un problème lorsque j'execute celui-ci, il marche très bien lorsque je n'utilise pas Tkinter mais lorsque je l'utilise et que je met des mots de passe identiques il ne les reconnaît pas
Voici mon code: (le label "call" me permettait de vérifier que ma variable password fonctionnait)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Merci pour votre aide !