sql >> Database teknologi >  >> RDS >> Mysql

Bruger PHP 5.5's password_hash og password_verify funktion

Ignorerer problemerne med dine databaseudsagn indtil videre, vil jeg besvare spørgsmålet vedrørende password_hash .

Kort sagt, nej, sådan gør man ikke. Du ønsker ikke at gemme saltet alene, du skal gemme både hash og salt og derefter bruge begge til at bekræfte adgangskoden. password_hash returnerer en streng, der indeholder begge dele.

password_hash funktion returnerer en streng, der indeholder både hashen og saltet. Så:

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

Derefter for at bekræfte:

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

Derudover, som kommentarerne antyder, kan du, hvis du er interesseret i sikkerhed, se på mysqli (ext/mysql er forældet i PHP5.5), og også denne artikel om SQL-injektion:http://php.net/manual/en/security.database.sql-injection.php



  1. 5 måder at rette fejlen "Del med nul" i SQL Server (Msg 8134)

  2. Hvad er forskellen mellem MS Access og SQL?

  3. BIN_TO_NUM() Funktion i Oracle

  4. Import af filer i Oracle Apex ved hjælp af wwv_flow_files