1. A propos du module hashlib
Le module "hashlib" de Python fournit une collection d'algorithmes de hachage pour une représentation de données sécurisée. Il est construit sur la bibliothèque OpenSSL et permet de hasher le message (hachages) basé sur: SHA-1, SHA-256 et SHA-512, ainsi que l'algorithme MD5. Ces algorithmes sont utiles pour une variété de fins, notamment la création et la vérification de signatures numériques et la vérification de l'intégrité des données. Le module inclut également la fonction "pbkdf2_hmac" pour la dérivation de clés, qui peut être utilisée pour créer une clé cryptographique à partir d'un mot de passe.
2. Exemple d'usage du module hashlib
Nous allons voir comment hasher un mot de passe à titre d'exemple password = "admin"
1 2 3 4 5 6 7 8 9 10 11 12 |
import hashlib entered_password = "admin" hashed_password = hashlib.sha256(entered_password.encode()).hexdigest() print(hashed_password) """ Cet exemple affiche le mot de passe hashé: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 """ |
3. Exemple d'authentification graphique avec Tkinter
Pour créer un système d'authentification à l'aide de Python Tkinter, vous devrez:
- importer le module Tkinter
- créer une fenêtre Tkinter.
- Ajouter des widgets tels que des étiquettes, des champs de saisie et des boutons pour demander à l'utilisateur un nom d'utilisateur et un mot de passe.
Vous devrez également utiliser le module hashlib intégré de Python pour hacher le mot de passe saisi à des fins de comparaison avec le mot de passe haché stocké dans une base de données ou dans un fichier.
Voici un exemple de système d'authentification simple utilisant Tkinter :
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 |
import tkinter as tk from tkinter import messagebox import hashlib def check_credentials(): # Récupère le nom d'utilisateur et le mot de passe entrés entered_username = username_entry.get() entered_password = password_entry.get() # Hash le mot de passe entré hashed_password = hashlib.sha256(entered_password.encode()).hexdigest() # Vérifie les informations d'identification entrées contre les informations d'identification stockées # dans cet exemple user = admin et password = admin if entered_username == "admin" and hashed_password == "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918": messagebox.showinfo("Succès", "Bienvenue admin!") else: messagebox.showerror("Erreur", "Nom d'utilisateur ou mot de passe incorrect.") # Crée une fenêtre Tkinter root = tk.Tk() root.title("Authentification") root.geometry("320x120") # Ajoute un libellé pour le nom d'utilisateur username_label = tk.Label(root, text="Nom d'utilisateur :") username_label.grid(row=0, column=0) # Ajoute un champ d'entrée pour le nom d'utilisateur username_entry = tk.Entry(root) username_entry.grid(row=0, column=1) # Ajoute un libellé pour le mot de passe password_label = tk.Label(root, text="Mot de passe :") password_label.grid(row=1, column=0) # Ajoute un champ d'entrée pour le mot de passe password_entry = tk.Entry(root, show="*") password_entry.grid(row=1, column=1) # Ajoute un bouton de connexion login_button = tk.Button(root, text="Connexion", command=check_credentials) login_button.grid(row=2, column=1) root.mainloop() |
En cas d'identifiants correctes: admin = "admin" et password = "admin" le système affiche la fenêtre suivante:
Et en cas d'identifiants incorrectes, le système affiche la fenêtre suivante:
Younes Derfoufi
CRMEF OUJDA