Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Hash simple de mot de passe
On ne stocke jamais un mot de passe en clair dans une base de données. A la place, on stocke un hash : une valeur calculée a partir du mot de passe, mais a partir de laquelle on ne peut pas retrouver le mot de passe original.
C'est comme un hachoir a viande : tu mets un steak, tu obtiens de la viande hachee. Impossible de reconstituer le steak, mais si tu haches le meme steak deux fois, tu obtiens le meme résultat.
Pour cet exercice, on va utiliser un hash simpliste : la somme des codes ASCII de chaque caractere, multipliee par 31.
Écris deux fonctions : - hasher_mdp(mdp) qui retourne le hash du mot de passe - vérifier_mdp(mdp, hash_val) qui retourne True si le hash du mot de passe correspond a hash_val
Exemple : h = hasher_mdp('test') vérifier_mdp('test', h) renvoie True vérifier_mdp('wrong', h) renvoie False
Tests (2/4)
Hash coherent
h = hasher_mdp('test')
assert vérifier_mdp('test', h) == True
Mauvais mot de passe
h = hasher_mdp('secret')
assert vérifier_mdp('wrong', h) == False
+ 0 tests cachés
Indices (3 disponibles)
Solution officielle
def hasher_mdp(mdp):
return sum(ord(c) * 31 for c in mdp)
def verifier_mdp(mdp, hash_val):
return hasher_mdp(mdp) == hash_val