sql >> Database >  >> RDS >> Mysql

De functies wachtwoord_hash en wachtwoord_verify van PHP 5.5 gebruiken

Ik negeer de problemen met je database-statements voor nu, ik beantwoord de vraag over password_hash .

Kortom, nee, zo doe je het niet. U wilt het zout niet alleen opslaan, u moet zowel de hash als het zout opslaan en vervolgens beide gebruiken om het wachtwoord te verifiëren. password_hash geeft een string terug die beide bevat.

De password_hash functie retourneert een tekenreeks die zowel de hash als het zout bevat. Dus:

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

Vervolgens om te verifiëren:

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

Bovendien, zoals de opmerkingen suggereren, kun je, als je geïnteresseerd bent in beveiliging, kijken naar mysqli (ext/mysql is verouderd in PHP5.5), en ook dit artikel over SQL-injectie:http://php.net/manual/en/security.database.sql-injection.php



  1. Hoe CONVERT_TZ() werkt in MariaDB

  2. Oracle Database Security:Database Auditing

  3. Waarom retourneert PostgreSQL geen null-waarden als de voorwaarde <> waar is?

  4. Hoe de waitevent Geschiedenis van de Oracle-sessie te vinden