Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Logowanie PHP przy użyciu danych MySQL i zaszyfrowanego hasła

Zamiast używać MD5 lub próbować odszyfrować hasło - jak sugerowali inni tutaj - po prostu użyj natywnego PHP hasło_hasło() funkcja, która automatycznie sprawdza, czy hasło jest dla Ciebie poprawne.

Zaszyfruj hasło w ten sposób:

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

Następnie wstaw do bazy danych w ten sposób:

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

Jeśli chcesz sprawdzić, czy hasło jest poprawne, wybierz hasło z bazy danych za pomocą:

SELECT encrypted_password FROM users WHERE username = $username;

Na koniec sprawdź, czy hasło jest poprawne, używając passoword_verify() :

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

Uważaj, aby chronić się przed wstrzykiwaniem SQL, ponieważ powyższy kod jest na nie podatny.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaimplementuj różne widoki na poziomie użytkownika w php

  2. jquery ajax nie działa bez punktu przerwania firebuga

  3. MySQL - PHP:wyświetl wyniki w wierszach tabeli (5 wyników w wierszu)

  4. Procedury składowane przy użyciu MySQL Workbench

  5. Sqlite3 - Jak zaimportować wartości NULL z csv