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

PHP-login ved hjælp af MySQL-data og hashed adgangskode

I stedet for at bruge MD5 eller forsøge at dekryptere adgangskoden - som andre her har foreslået - skal du blot bruge PHP's oprindelige password_hash() funktion, som automatisk tjekker, om adgangskoden er korrekt for dig.

Krypter adgangskoden sådan her:

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

Indsæt derefter i din DB sådan:

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

Når du vil kontrollere, om adgangskoden er korrekt, skal du vælge adgangskoden fra databasen med:

SELECT encrypted_password FROM users WHERE username = $username;

Til sidst skal du kontrollere, at adgangskoden er korrekt ved at bruge passoword_verify() :

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

Vær omhyggelig med at beskytte mod SQL-injektion, da ovenstående kode er sårbar over for det.



  1. Sådan bruger du join på tre borde

  2. PostgreSQL-grupperingsfejl

  3. Slut med eliminering:Når SQL Server fjerner unødvendige tabeller

  4. Returner NULL, hvis Count(*) er nul