Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando a função password_hash e password_verify do PHP 5.5


Ignorando os problemas com suas instruções de banco de dados por enquanto, responderei à pergunta sobre password_hash .

Em suma, não, não é assim que você faz. Você não deseja armazenar o sal sozinho, você deve armazenar o hash e o sal e, em seguida, usar ambos para verificar a senha. password_hash retorna uma string contendo ambos.

O password_hash A função retorna uma string que contém o hash e o sal. Então:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user

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

Além disso, como os comentários sugerem, se você estiver interessado em segurança, talvez queira dar uma olhada em mysqli (ext/mysql está obsoleto no PHP5.5), e também este artigo sobre injeção de SQL:http://php.net/manual/en/security.database.sql-injection.php