Documentation · Chapitre 14

Construire un utilitaire complet de mot de passe.

Cet atelier demande un mot de passe, le masque lorsque le système le permet, le hache, le vérifie et teste la classe responsable.

Chaque leçon part du problème, explique le mécanisme puis propose une vérification concrète.

OBJECTIF DE LA LEÇON

Ce que vous saurez faire

Réunir questions, validation, hachage, vérification, objets et tests dans un petit outil maintenable.

Séparer interaction et hachage

PasswordHasher gère hash et verify. Program gère questions et messages. Aucun n’a besoin de connaître les détails internes de l’autre.

phpaml — zsh
$hash = password_hash($password, PASSWORD_DEFAULT);
if (!password_verify($confirmation, $hash)) {
    throw new RuntimeException('Les mots de passe diffèrent.');
}

Vérifier plutôt que déchiffrer

password_verify compare la saisie avec le hash. Aucune opération ne doit révéler le mot de passe original.

Exercer succès et échec

Testez mot de passe accepté, refusé, entrée vide et flux illisible, puis lancez le programme réel.

POINT DE CONTRÔLE

Avant de continuer

Le programme prouve-t-il la correspondance d’un mot de passe sans retrouver ni afficher sa valeur originale ?

EN RÉSUMÉ

Ce qu’il faut retenir

  • Console exécute du PHP ordinaire.
  • Entrée, validation, sortie et statut forment le cycle fondamental.
  • Classes et tests évoluent comme dans les projets Web.
  • Les mots de passe sont hachés et vérifiés, jamais déchiffrés.