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

Korzystanie z funkcji password_hash i password_verify w PHP 5.5

Ignorując na razie problemy z wyciągami do bazy danych, odpowiem na pytanie dotyczące password_hash .

Krótko mówiąc, nie, nie tak to robisz. Nie chcesz przechowywać samej soli, powinieneś przechowywać zarówno skrót, jak i sól, a następnie używać obu do weryfikacji hasła. password_hash zwraca ciąg zawierający oba.

password_hash funkcja zwraca ciąg, który zawiera zarówno skrót, jak i sól. A więc:

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user

Następnie do weryfikacji:

// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
   // Verified
}

Dodatkowo, jak sugerują komentarze, jeśli interesuje Cię bezpieczeństwo, możesz zajrzeć do mysqli (ext/mysql jest przestarzały w PHP5.5), a także ten artykuł na temat wstrzykiwania SQL:http://php.net/manual/en/security.database.sql-injection.php



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest MySQL:przegląd

  2. Warunkowe wstawianie MySQL

  3. Czy MySQL powinien mieć swoją strefę czasową ustawioną na UTC?

  4. Docker:Połącz wiele obrazów

  5. Stosowanie PDO na zajęciach