Stockage et vérification des mots de passe en toute sécurité avec les fonctions de gestion des mots de passe de PHP
Lorsqu'il s'agit de gérer les mots de passe dans les applications Web, la sécurité est primordiale. PHP 5.5 a introduit les fonctions password_hash() et password_verify() pour vous aider dans cette tâche critique.
Création d'un hachage sécurisé
La fonction password_hash() génère un hachage sécurisé d'un mot de passe donné à l'aide d'un algorithme comme BCRYPT. Pour créer un hachage, trois paramètres sont nécessaires : le mot de passe lui-même, l'algorithme de hachage (par exemple, PASSWORD_BCRYPT) et un ensemble d'options. Les options incluent la spécification du coût (un facteur de calcul) et un sel unique (des données générées aléatoirement ajoutées au hachage pour augmenter son caractère unique).
Stockage du mot de passe et du sel
Contrairement à la requête initiale, la bonne approche consiste à stocker à la fois le hachage et le sel dans la base de données. En effet, password_hash() renvoie une chaîne contenant les deux éléments. Ainsi, dans une instruction MySQL par exemple :
INSERT INTO users(username, password_hash) VALUES($username, $hashAndSalt);
Vérification du mot de passe
Lorsqu'un utilisateur se connecte, le mot de passe qu'il saisit doit être vérifié par rapport au hachage stocké. Pour ce faire, récupérez le hachage stocké (qui contient à la fois le hachage et le sel) et transmettez-le à password_verify() :
if (password_verify($password, $hashAndSalt)) { // Verified }
Mesures de sécurité supplémentaires
Au-delà l'utilisation de ces fonctions, envisagez d'autres mesures de sécurité :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!