sql >> Base de Datos >  >> RDS >> Mysql

Uso de la función password_hash y password_verify de PHP 5.5

Ignorando los problemas con las declaraciones de su base de datos por ahora, responderé la pregunta sobre password_hash .

En resumen, no, no es así como lo haces. No desea almacenar solo la sal, debe almacenar tanto el hash como la sal, y luego usar ambos para verificar la contraseña. password_hash devuelve una cadena que contiene ambos.

El password_hash La función devuelve una cadena que contiene tanto el hash como la sal. Entonces:

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

Luego para verificar:

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

Además, como sugieren los comentarios, si está interesado en la seguridad, puede consultar mysqli (ext/mysql está en desuso en PHP5.5), y también este artículo sobre inyección SQL:http://php.net/manual/en/security.database.sql-injection.php