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

Utilizzando la funzione password_hash e password_verify di PHP 5.5

Ignorando per ora i problemi con le istruzioni del tuo database, risponderò alla domanda relativa a password_hash .

In breve, no, non è così che si fa. Se non vuoi conservare il sale da solo, dovresti memorizzare sia l'hash che il sale e quindi utilizzare entrambi per verificare la password. password_hash restituisce una stringa contenente entrambi.

Il password_hash La funzione restituisce una stringa che contiene sia l'hash che il salt. Quindi:

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

Quindi per verificare:

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

Inoltre, come suggeriscono i commenti, se sei interessato alla sicurezza potresti voler guardare mysqli (ext/mysql è deprecato in PHP5.5), e anche questo articolo su SQL injection:http://php.net/manual/en/security.database.sql-injection.php