Maison >développement back-end >tutoriel php >Dois-je stocker le sel séparément lors de l'utilisation de « password_hash() » de PHP ?

Dois-je stocker le sel séparément lors de l'utilisation de « password_hash() » de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 06:23:10950parcourir

Should I Store the Salt Separately When Using PHP's `password_hash()`?

Utilisation des fonctions password_hash et password_verify de PHP 5.5 pour un stockage sécurisé des mots de passe

Question :

Lorsque vous utilisez la fonction password_hash() de PHP 5.5 pour stocker les mots de passe des utilisateurs, le sel doit-il être stocké séparément du hachage ?

Réponse :

Non, stocker le sel séparément du hachage est incorrect. La fonction password_hash() génère une chaîne qui contient à la fois le hachage et le sel. Voici la bonne façon de l'utiliser :

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user

Pour vérifier le mot de passe :

if (password_verify($password, $hashAndSalt)) {
    // Verified
}

Cette approche offre une sécurité optimale car elle empêche les attaquants d'accéder au sel et de compromettre le hachage. De plus, il est recommandé d'utiliser mysqli au lieu de ext/mysql, qui est obsolète dans PHP 5.5, et d'être conscient des vulnérabilités d'injection 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!

Déclaration:
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