Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le hachage du mot de passe à l'aide de la crypte ne fonctionne pas sur la connexion, il affiche une passe incorrecte

Lors de l'inscription, vous créez un sel unique. Ce sel fait maintenant partie du hasch. Si vous regardez attentivement, vous verrez qu'il est intégré dans la première partie du hachage. Pour vérifier le mot de passe, utilisez le sel du mot de passe haché précédent, de sorte que vous utilisez à nouveau le même sel.

$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);

if ($correctPasswordHash === $hash) ...

Pour rendre cela plus facile et plus infaillible, utilisez la bibliothèque password_compat , qui enveloppe cela dans une API facile à utiliser, qui sera également intégrée dans une future version de PHP. Inspectez son code source pour l'utilisation correcte de crypt , car il y a des pièges dont vous devez faire attention. La bibliothèque password_compat utilise également une comparaison binaire personnalisée au lieu d'un simple === pour contrecarrer les attaques temporelles.