sql >> Databasteknik >  >> RDS >> Mysql

Använder PHP 5.5:s password_hash och password_verify-funktion

Jag ignorerar problemen med dina databassatser för tillfället, jag ska svara på frågan om password_hash .

Kort sagt, nej, det är inte så man gör. Du vill inte lagra saltet ensamt, du bör lagra både hash och salt och sedan använda båda för att verifiera lösenordet. password_hash returnerar en sträng som innehåller båda.

password_hash funktion returnerar en sträng som innehåller både hash och salt. Så:

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

Sedan för att verifiera:

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

Dessutom, som kommentarerna antyder, om du är intresserad av säkerhet kanske du vill titta på mysqli (ext/mysql är utfasad i PHP5.5), och även denna artikel om SQL-injektion:http://php.net/manual/en/security.database.sql-injection.php



  1. postgresql returnerar 0 om det returnerade värdet är null

  2. Oracle sql för att räkna instanser av olika värden i en kolumn

  3. Hur skapar och frågar jag länkade databasservrar i SQL Server?

  4. 7 viktiga saker att komma ihåg om globalisering av datamodeller