Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Hashowanie hasła
Forum PHP.pl > Forum > Przedszkole
adiif1
Witajcie drodzy koledzy niestety mam problem jak podpiąć owego hash'a pod logowanie ;/ wyrywam już sobie włosy z głowy
w bazie oczywiście mam dobrze zahasowane hasło lecz cały czas pluje błędem że hasło jest nieprawidłowe

Edit: kod poniżej jest bez głupot z hashowaniem hasła
niezbyt ogarniam jak powinno wyglądać porównanie hasła jeżeli dobrze rozumiem

  1. if($senha == $pass) na
  2. if($senha == $hash)


  1. <?php
  2. $login = $_POST['login'];
  3. $senha = $_POST['senha'];
  4.  
  5. $select = mysql_query("SELECT * FROM accounts WHERE login = '". $login ."' AND password = '". $senha ."'");
  6. $cont = mysql_num_rows($select);
  7. $fetch = mysql_fetch_array($select);
  8. $pass = $fetch['password'];
  9.  
  10.  
  11. $iterations2 = "10000";
  12. $salt = 'at_least_16_byte' . $login;
  13. $hash = strtoupper(hash_pbkdf2("sha1", $senha, $salt, $iterations2));
  14.  
  15. if($cont == 0)
  16. {
  17. header("Location: /home/5");
  18. }
  19. else
  20. {
  21. if($senha == $pass)
  22. {
  23. $_SESSION['conectado'] = 1;
  24. $_SESSION['Conta_id'] = $fetch['id'];
  25. $_SESSION['Conta_Name'] = $fetch['Login'];
  26. header("Location: /home");
  27. }
  28. else
  29. {
  30. header("Location: /home/5");
  31. }
  32. }
  33. ?>
viking
http://php.net/manual/en/function.password-hash.php
http://php.net/manual/en/book.pdo.php

Nie porównuj hasha do gołego hasła.
Pyton_000
No i uzupełnieniem tego co podał @viking bo znając ludzi zaraz zaczną porównywać wygenerowany nowy hash z tym co jest w BD...

http://php.net/manual/en/function.password-verify.php
Niree
  1. $login = $_POST['login'];
  2. $senha = $_POST['senha'];
  3. $iterations2 = "10000";
  4. $salt = 'at_least_16_byte' . $login;
  5. $hash = strtoupper(hash_pbkdf2("sha1", $senha, $salt, $iterations2));
  6.  
  7. $select = mysql_query("SELECT * FROM accounts WHERE login = '". $login ."' AND password = '". $hash."'");
  8. $cont = mysql_num_rows($select);
  9. $fetch = mysql_fetch_array($select);
  10. $pass = $fetch['password'];
  11. ;


a niżej warunek powinien być:

  1. if($hash == $pass)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.