Bonne pratique pour les mots de passe: password_hash et password_verify

(mis à jour le 05/08/2026)
Bonne pratique pour les mots de passe: password_hash et password_verify

Sécurité des mots de passe

Un mot de passe ne devrait jamais se trouver dans une base de données, ou dans quelconque autre format de stockage de données. 

Si la base de données est compromise, l'attaquant obtient immédiatement tous les mots de passe des utilisateurs !

Il faut que le mot de passe soit haché

Ne pas confondre cryptage et hachage 

Bien que les termes soient souvent confondus dans le langage courant, le hachage et le chiffrement (le terme rigoureux en français pour "cryptage") répondent à des problématiques de sécurité fondamentalement différentes

Hachage 

Le hachage transforme une donnée de taille variable (une chaîne de caractères, un fichier) en une empreinte numérique de taille fixe (le hash). C'est une fonction mathématique irréversible : il est mathématiquement impossible de retrouver la donnée d'origine à partir du hash.

Cryptage 

Nommé également Le Chiffrement (Encryption).

Le chiffrement sert à garantir la confidentialité. Il transforme une donnée lisible (le texte clair) en un format illisible (le texte chiffré). Contrairement au hachage, cette opération est réversible : on peut retrouver la donnée d'origine, à condition de posséder la bonne clé cryptographique.

Il faut donc hacher les mots de passe en PHP, un jeu d'enfant, mais il y a des règles à respecter! 

Mauvaises pratiques

Une solution naïve consiste à utiliser une fonction de hachage classique :





Cependant, ces algorithmes sont aujourd'hui considérés comme insuffisants pour protéger des mots de passe.

Ils sont :

- Trop rapides.
- Vulnérables aux attaques par dictionnaire.
- Vulnérables aux tables arc-en-ciel (Rainbow Tables), Une table arc-en-ciel est une base de données précalculée massive qui permet de retrouver un mot de passe en clair à partir de son empreinte (le hash) de manière quasi instantanée
- Conçus pour l'intégrité des données et non pour le stockage des mots de passe.


Bonne pratique 

Password_hash() est la méthode la plus moderne et solide pour hacher un mot de passe!

Documentation password_hash

Nous avons donc des haches différents avec le même mot de passe, PHP ne va pas vérifier si le mot de passe correspond au hache, mais si le hache a pu être généré depuis le mot de passe !


Fonctions password_hash, password_verify et password_needs_rehash



Note moyenne :
5/5 (1 vote)

Commentaires (0)

Aucun commentaire pour le moment.

Connectez-vous pour laisser un commentaire.

Articles similaires