Maison > base de données > tutoriel mysql > Comment `password_hash()` et `password_verify()` de PHP 5.5 peuvent-ils sécuriser le stockage des mots de passe ?

Comment `password_hash()` et `password_verify()` de PHP 5.5 peuvent-ils sécuriser le stockage des mots de passe ?

DDD
Libérer: 2024-12-22 21:49:18
original
422 Les gens l'ont consulté

How Can PHP 5.5's `password_hash()` and `password_verify()` Secure Password Storage?

Utiliser les fonctions password_hash et password_verify de PHP 5.5 pour sécuriser le stockage des mots de passe

Le stockage sécurisé des mots de passe est crucial pour maintenir l'intégrité des données utilisateur. PHP 5.5 a introduit les fonctions password_hash() et password_verify() pour fournir un moyen sécurisé et efficace de le faire.

password_hash() et Salt

Contrairement aux anciens stockages de mots de passe méthodes, password_hash() utilise un sel unique pour chaque mot de passe. Un sel est une chaîne aléatoire qui empêche les attaques par table arc-en-ciel, où les attaquants tentent des hachages de mot de passe courants.

Stockage du mot de passe et du sel

Pour stocker un mot de passe avec PHP 5.5 password_hash(), suivez ces étapes :

  1. Générez un sel en utilisant uniqid() ou un similaire fonction.
  2. Appelez password_hash() avec le mot de passe, PASSWORD_BCRYPT, et le tableau d'options contenant le sel et un coût (recommandé : 10-12).
  3. La fonction password_hash() renverra un chaîne hachée qui inclut à la fois le hachage et le sel.

Exemple :

$options = ["cost" => 10, "salt" => uniqid()];
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT, $options);
Copier après la connexion

Vérification du mot de passe

Pour vérifier un mot de passe, récupérez le hashAndSalt depuis la base de données et appelez password_verify() avec le mot de passe fourni et le mot de passe stocké hashAndSalt.

Exemple :

if (password_verify($password, $hashAndSalt)) {
    // Password verified successfully
}
Copier après la connexion

Mesures de sécurité supplémentaires

Alors que password_hash() fournit un moyen sécurisé de stocker mots de passe, il est recommandé de :

  • Utiliser un paramètre de coût de 10 ou supérieur.
  • Utilisez mysqli au lieu de mysql pour la gestion de la base de données.
  • Mettez en œuvre des techniques de protection contre les injections SQL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal