Skip to main content

Qu’est-ce que le hachage

Le hachage (hashing) est le processus qui transforme des données en clair, comme un mot de passe, en une chaîne de longueur fixe via une conversion à sens unique. La même entrée produit toujours le même hachage, mais il est impossible de reconstituer le texte clair à partir d’un hachage. La façade Hash de Laravel prend en charge les algorithmes bcrypt et Argon2 pour stocker les mots de passe en toute sécurité.

Comparaison des algorithmes

Le « work factor » de bcrypt contrôle le temps de calcul du hachage. Plus le hachage est lent, plus il résiste aux attaques par force brute. À mesure que le matériel s’améliore, augmentez le work factor pour maintenir la sécurité.

Flux de hachage et vérification


Configuration

Par défaut, Laravel utilise le driver bcrypt. Modifiez-le via la variable d’environnement HASH_DRIVER.
Pour personnaliser la configuration de hachage, publiez le fichier de configuration avec config:publish.
Après publication, modifiez le work factor par défaut et autres options dans config/hashing.php.

Utilisation de base

Hacher un mot de passe

Passez le mot de passe en clair à Hash::make() pour obtenir un hachage. Stockez cette valeur en base de données.
Stockez la valeur hachée en base, mais ne stockez jamais le mot de passe en clair.

Ajuster le work factor de bcrypt

L’option rounds ajuste le coût de calcul. Une valeur élevée est plus sûre, mais plus lente. La valeur par défaut (12) convient à la plupart des applications.

Ajuster le work factor d’Argon2

Avec Argon2, ajustez le coût via memory, time et threads.
Consultez la documentation officielle PHP pour le détail des options d’Argon2.

Vérification du mot de passe

Hash::check() permet de vérifier qu’un mot de passe en clair correspond à un hachage stocké. Exemple typique lors du processus de connexion.
Lors de l’utilisation de Auth::attempt(), cette vérification est automatique et vous n’avez pas besoin de l’appeler directement. Hash::check() est utile lorsque vous devez vérifier manuellement le mot de passe courant.

Détermination du besoin de re-hachage

Hash::needsRehash() indique si le work factor utilisé lors de la génération du hachage diffère de la configuration actuelle. Cela sert à mettre à jour les hachages existants après un changement de work factor.
Exemple de re-hachage lors d’une connexion réussie.
Réévaluez régulièrement le work factor pour suivre l’évolution du matériel et maintenir votre niveau de sécurité. Grâce à needsRehash(), vous pouvez profiter des connexions utilisateur pour mettre à jour naturellement les mots de passe.

Vérification de l’algorithme de hachage

Par défaut, Hash::check() vérifie que le hachage a été généré avec l’algorithme actuellement configuré. Si l’algorithme diffère, une RuntimeException est lancée. Cela protège contre des attaques par altération de l’algorithme. Si vous devez prendre en charge plusieurs algorithmes simultanément (migration en cours), vous pouvez désactiver cette vérification en réglant HASH_VERIFY sur false.
Régler HASH_VERIFY=false désactive la vérification d’algorithme. Ne l’utilisez que durant la période de migration et remettez true (valeur par défaut) une fois la migration terminée.

Récapitulatif

Prochaines étapes

Introduction à l'authentification

Découvrez la vue d’ensemble de l’authentification, notamment l’implémentation de la connexion avec Hash::check().
Dernière modification le 13 juillet 2026