PHP · FICHE DE RÉVISION
Hachage des mots de passe
Enregistrer une empreinte et vérifier un mot de passe.
Comprendre le hachage
Le hachage produit une empreinte à partir d’une valeur. On ne déchiffre pas un hash pour retrouver le mot de passe : on vérifie un candidat avec une fonction adaptée.
Créer et vérifier
PHP
$hash = password_hash($motDePasse, PASSWORD_DEFAULT);
// Enregistrer $hash en base.
if (password_verify($motDePasseSaisi, $hashEnBase)) {
// Mot de passe correct.
}password_hash gère le sel. Deux empreintes du même mot de passe peuvent différer ; une comparaison directe des chaînes de hash ne constitue pas une vérification correcte.
Relier à la connexion
- À l’inscription : valider les données puis enregistrer le hash.
- À la connexion : retrouver l’utilisateur et appeler password_verify.
- Après validation : mémoriser l’identifiant de l’utilisateur dans une session, pas son mot de passe.
Faut-il refaire un password_hash et comparer deux chaînes ?
Non. Il faut appeler password_verify avec le mot de passe saisi et le hash enregistré.