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

Accesso PHP utilizzando dati MySQL e password hash

Invece di usare MD5 o provare a decifrare la password - come altri hanno suggerito qui - usa semplicemente il password_hash() funzione che verifica automaticamente se la password è corretta per te.

Cripta la password in questo modo:

$unencrypted_password = 'secret!'; 
$encrypted_password = password_hash($unencrypted_password,  PASSWORD_DEFAULT);

Quindi inserisci nel tuo DB in questo modo:

INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);

Quando vuoi verificare se la password è corretta, seleziona la password dal database con:

SELECT encrypted_password FROM users WHERE username = $username;

Infine, verifica che la password sia corretta utilizzando passoword_verify() :

$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
    echo 'correct password!';
} else {
    echo 'password incorrect!';
}

Fai attenzione a proteggerti dall'iniezione di SQL, poiché il codice sopra è vulnerabile ad esso.