sql >> Databasteknik >  >> RDS >> Mysql

PHP-inloggning med MySQL-data och hashat lösenord

Istället för att använda MD5 eller försöka dekryptera lösenordet - som andra här har föreslagit - använd helt enkelt PHP:s ursprungliga password_hash() funktion som automatiskt kontrollerar om lösenordet är rätt för dig.

Kryptera lösenordet så här:

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

Infoga sedan i din DB så här:

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

När du vill kontrollera om lösenordet är korrekt, välj lösenordet från databasen med:

SELECT encrypted_password FROM users WHERE username = $username;

Kontrollera slutligen att lösenordet är korrekt genom att använda passoword_verify() :

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

Var noga med att skydda mot SQL-injektion, eftersom ovanstående kod är sårbar för det.



  1. Välj X-linjer som börjar på rad Y

  2. Snabbstart databasmigrering med Talend

  3. ställa in PostgreSQL med django-projektet

  4. Är detta en säker/stark ingångssaneringsfunktion?