J'utilise salt pour crypter les mots de passe de mes utilisateurs. J'utilise PHP, et voici un exemple rapide de ce qui se passe pendant les registres d'utilisateurs.Authentifier une connexion utilisateur avec du sel
Ici, il est:
Code PHP:
// Gives me my random key. My salt generator.
$salt = uniqid(mt_rand());
// My password via what users inputs.
$userpwd;
// Then the encryption. I use a HMAC hash.
$encrypted = hmac_hash("sha256", $userpwd, $salt);
?>
Maintenant que tous les travaux pour moi dans mon script. Mais ma question est, comment puis-je authentifier un utilisateur se connectant? Le nouveau mot de passe crypté est aléatoire, donc je ne peux pas comparer le mot de passe du formulaire de connexion au mot de passe crypté enregistré dans la base de données.
J'ai cherché et je ne trouve pas de solution. Peut-être que je n'ai pas cherché assez dur, mais est-il un moyen de déchiffrer le mot de passe? Que puis-je faire pour authentifier l'utilisateur avec mon script?
Merci, c'est ce que je ferai alors. Je stocke mon sel dans un fichier de configuration. J'ai lu beaucoup de gens disant stocker le sel dans le db mais je ne me sentais pas à l'aise avec ça.Juste au cas où le db était compromis. – Mario
Mais gardez à l'esprit que l'utilisation du même sel pour tout le monde réduit le temps de calcul requis pour un attaquant en force brute. –
Il conduira également au même hachage si plus d'une personne a le même mot de passe. Il est préférable d'avoir un sel par utilisateur (par mot de passe). – Aether