Python Language Hachage de mot de passe sécurisé


Exemple

L' algorithme PBKDF2 exposé par le module hashlib peut être utilisé pour effectuer un hachage sécurisé des mots de passe. Bien que cet algorithme ne puisse pas empêcher les attaques par force brute afin de récupérer le mot de passe original à partir du hachage stocké, cela rend ces attaques très coûteuses.

import hashlib
import os

salt = os.urandom(16)
hash = hashlib.pbkdf2_hmac('sha256', b'password', salt, 100000)

PBKDF2 peut fonctionner avec n'importe quel algorithme de résumé, l'exemple ci-dessus utilise SHA256 qui est généralement recommandé. Le sel aléatoire doit être stocké avec le mot de passe haché, vous en aurez de nouveau besoin pour comparer un mot de passe saisi au hachage stocké. Il est essentiel que chaque mot de passe soit haché avec un sel différent. En ce qui concerne le nombre de tours, il est recommandé de le définir aussi haut que possible pour votre application .

Si vous voulez le résultat en hexadécimal, vous pouvez utiliser le module binascii :

import binascii
hexhash = binascii.hexlify(hash)

Note : Bien que PBKDF2 ne soit pas mauvais, bcrypt et surtout scrypt sont considérés plus forts contre les attaques en force. Aucune des deux ne fait partie de la bibliothèque standard Python pour le moment.