Mdp::py
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Saisie et hachage de mot de passe |
| Modules | getpass, hashlib
|
| Voir aussi | Systeme::py · Reseau::py |
Cette fiche regroupe deux besoins courants en Python : la saisie masquée d'un mot de passe (sans écho à l'écran) via getpass, et le hachage d'un mot de passe via hashlib pour ne jamais le stocker en clair.
Saisie masquée
from getpass import getpass
mot_de_passe = getpass("Tapez votre mot de passe : ")
Hachage
Le module hashlib expose la liste des algorithmes disponibles :
import hashlib
hashlib.algorithms_guaranteed
Calcul d'une empreinte SHA-1 :
mot_de_passe = hashlib.sha1(b"mot de passe")
mot_de_passe.hexdigest()
Exemple : vérification d'un mot de passe
import hashlib
from getpass import getpass
chaine_mot_de_passe = b"azerty"
mot_de_passe_chiffre = hashlib.sha1(chaine_mot_de_passe).hexdigest()
verrouille = True
while verrouille:
entre = getpass("Tapez votre mot de passe : ")
entre = entre.encode()
entre_chiffre = hashlib.sha1(entre).hexdigest()
if entre_chiffre == mot_de_passe_chiffre:
verrouille = False
else:
print("Mot de passe incorrect")
print("mot de passe accepté...")
Note : SHA-1 est utilisé ici à titre pédagogique. Pour du stockage réel de mots de passe, préférer une fonction de dérivation lente et salée (par exemple hashlib.pbkdf2_hmac, ou une bibliothèque comme bcrypt/argon2).
Voir aussi
- Systeme::py — flux standard, signaux et exécution de commandes
- Reseau::py — programmation réseau par sockets