quand j'utiliser la commande shell:echo -n "mot de passe" | OpenSSL dgst -md5 -binary | openssl enc -base64
echo -n "password"|openssl dgst -md5 -binary|openssl enc -base64
Le résultat est: X03MO1qnZdYdgyfeuILPmQ ==
mais, comment puis-je faire python3
import base64, sys, hashlib
text = "password"
try:
text = bytes(text, 'utf-8')
except:
pass
auth = str.encode(hashlib.md5(text).hexdigest())
query = base64.b64encode(auth)
print(query)
Le résultat est différent: NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk =
Lors de l'enregistrement d'un mot de passe vérificateur juste en utilisant une fonction de hachage ne suffit pas et le simple ajout d'un sel ne contribue guère à améliorer la sécurité. Au lieu de itérer sur un HMAC avec un sel aléatoire pour une durée d'environ 100ms et enregistrer le sel avec le hachage. Mieux encore, utilisez une fonction telle que 'PBKDF2',' Rfc2898DeriveBytes', 'password_hash',' Bcrypt', 'passlib.hash' ou des fonctions similaires. Le but est que l'attaquant passe beaucoup de temps à trouver des mots de passe par force brute. – zaph