Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation des fonctions password_hash et password_verify de PHP 5.5

Ignorant les problèmes avec vos déclarations de base de données pour l'instant, je vais répondre à la question concernant password_hash .

Bref, non, ce n'est pas comme ça qu'on fait. Vous ne voulez pas stocker le sel seul, vous devez stocker à la fois le hachage et le sel, puis utiliser les deux pour vérifier le mot de passe. password_hash renvoie une chaîne contenant les deux.

Le password_hash La fonction renvoie une chaîne qui contient à la fois le hachage et le sel. Donc :

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

Ensuite pour vérifier :

// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
   // Verified
}

De plus, comme le suggèrent les commentaires, si vous êtes intéressé par la sécurité, vous pouvez consulter mysqli (ext/mysql est obsolète en PHP5.5), ainsi que cet article sur l'injection SQL :http://php.net/manual/en/security.database.sql-injection.php