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

Zaszyfrować hasło przed zapisaniem w bazie danych?

Chociaż odpowiedź poniżej jest technicznie nadal poprawna, php ma nowe zalecenia dotyczące algorytmów haszujących, których należy użyć. Ich rekomendacje , od php> =5.5.0, jest użycie password_hash i password_verify funkcje do haszowania i weryfikacji haszowanych haseł. Dodatkową korzyścią jest to, że funkcje te automatycznie włączają zindywidualizowaną sól jako część zwracanego haszyszu, więc nie musisz się tym wyraźnie przejmować.

Jeśli nie zależy Ci na pobraniu rzeczywistej wartości hasła (z zaszyfrowanej wartości bazy danych), możesz uruchomić na nim jednokierunkowy algorytm mieszający (taki jak sha1). Ta funkcja zwróci ciąg o określonej długości (hash), którego nie można użyć do znalezienia oryginalnego ciągu (teoretycznie). Możliwe, że dwa różne ciągi mogą utworzyć ten sam skrót (tzw. kolizję), ale nie powinno to stanowić problemu w przypadku haseł.
Przykład: $pass = sha1($_REQUEST['pass']);

Jedną rzeczą, aby uczynić go trochę bezpieczniejszym, jest dodanie soli do haszu i ponowne uruchomienie funkcji haszowania. Utrudnia to złośliwe wygenerowanie skrótu hasła, ponieważ wartość salt jest obsługiwana tylko po stronie serwera.
Przykład: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Policz unikalne pary wartości w wierszach

  2. Funkcja MySQL RAND() – Generuj liczbę losową w MySQL

  3. Zapisywanie serbskich znaków łacińskich w bazie danych

  4. MySQL Query nie używa indeksu w łączeniu tabel

  5. Pojedynczy model Django, wiele stołów?