sql >> Databáze >  >> RDS >> Mysql

PHP přihlášení pomocí MySQL dat a hash hesla

Spíše než pomocí MD5 nebo pokusů o dešifrování hesla – jak zde navrhovali jiní – jednoduše použijte nativní PHP password_hash() funkce, která automaticky zkontroluje, zda je heslo pro vás správné.

Zašifrujte heslo takto:

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

Poté vložte do své DB takto:

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

Chcete-li zkontrolovat, zda je heslo správné, vyberte heslo z databáze pomocí:

SELECT encrypted_password FROM users WHERE username = $username;

Nakonec zkontrolujte správnost hesla pomocí passoword_verify() :

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

Buďte opatrní, abyste se chránili před vložením SQL, protože výše uvedený kód je vůči němu zranitelný.



  1. Jak mám auditovat změny v tabulce MySQL (pomocí MySQL 4)?

  2. Jak zobrazit kód CREATE VIEW pro zobrazení v PostgreSQL?

  3. php - mysql ukládající stará data

  4. Efektivní přiřazení percentilu/hodnocení v MYSQL