Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Hashowanie hasla + sol.
cvanyy
post 16.11.2015, 22:03:26
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.11.2015

Ostrzeżenie: (0%)
-----


Witam,
mecze sie juz z moim hashowaniem pare dni i dalej nie mam pojecia dlaczego to wszystko nie dziala.Rejestracja uzytkowniak przebiega bezproblemowo, jednak przy logowaniu nie widzi uzytkownikow i wywala blad, ze nie ma takiego uzytkowniaka. Zastanawiam sie czy przy dodawniu przy logowaniu soli do hasla, nie ma innego wyniku i dlatego nie przepuszcza. Od patrzenia na ten caly kod juz mam metlik, moze ktos z Was umie zobaczyc co jest tam nie tak?

Logowanie
  1. <?php
  2.  
  3. require_once "polaczenie_z_baza.php";
  4.  
  5. //nawiazanie polaczenia z baza
  6. $polaczenie = mysqli_connect($host, $db_user, $db_password, $db_name);
  7. //@ - wyciszenie bledow
  8. mysqli_select_db($polaczenie,"projekt");
  9.  
  10. if($polaczenie->connect_errno!=0)
  11. {
  12. echo "Error: ".$polaczenie->connect_errno;
  13. }
  14. else
  15. {//polaczenie nawiazane:
  16.  
  17. $login = $_POST['login'];
  18. $haslo =$_POST['haslo'];
  19.  
  20. $saltQuery = "SELECT salt FROM uzytkownik WHERE login ='$login'";
  21.  
  22. $result = mysqli_query($polaczenie, $saltQuery); //or die(mysql_error());
  23.  
  24. $row = mysqli_fetch_assoc($result);
  25.  
  26. $result->free();
  27. if ($result = $polaczenie->query($saltQuery)) {
  28.  
  29.  
  30. }
  31.  
  32. $salt = $row['salt'];
  33.  
  34. $saltedPW = $salt. $haslo;
  35.  
  36. $hashedPW = hash('sha256', $saltedPW);
  37.  
  38. //zapytanie sql
  39. $sql = "select * from uzytkownik where login ='$login' and haslo = '$hashedPW'";
  40.  
  41. //wyslanie zapytania do bazy:
  42. if($rezultat = $polaczenie->query($sql))
  43. {
  44.  
  45. $liczba_wierszy = $rezultat->num_rows;
  46.  
  47. if($liczba_wierszy == 1)
  48. {//pobranie danych z bazy danych:
  49.  
  50. //pobranie NAZW indeksow tablicy
  51. $wiersz = $rezultat->fetch_assoc();
  52.  
  53. $_SESSION['Imie'] = $wiersz['Imie'];
  54. $_SESSION['Nazwisko'] = $wiersz['Nazwisko'];
  55. $_SESSION['email'] = $wiersz['email'];
  56. $_SESSION['login'] = $wiersz['login'];
  57.  
  58. //zwolnienie
  59. $rezultat->free();
  60.  
  61. //przykladowe wypisanie na ekran:
  62. Echo "witaj ".$_SESSION['Imie']." ".$_SESSION['Nazwisko'];
  63. header('Location: index.php');
  64. //do usuniecia potem
  65. Echo'<a href="index.php">powrot do index.php</a>';
  66. }
  67. else
  68. {// 0 wierszy -> nie udalo sie zalogowac!
  69.  
  70. $_SESSION['msg']='<sman style="color:red">Nieprawidlowy login lub haslo!</span>';
  71.  
  72. header('Location: index.php');
  73. }
  74. }
  75. else{
  76. Echo"Error:<br/>Zle zapytanie sql<br/>";
  77. }
  78.  
  79.  
  80.  
  81.  
  82. //zamkniecie polaczenia z baza:
  83. $polaczenie->close();
  84. }
  85. ?>


Rejestracja:
  1. <?php
  2.  
  3. require_once "polaczenie_z_baza.php";
  4.  
  5. //nawiazanie polaczenia z baza
  6. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  7. //@ - wyciszenie bledow
  8.  
  9. //nie nawiazano polaczenia z baza
  10. if($polaczenie->connect_errno!=0)
  11. {
  12. echo "Error: ".$polaczenie->connect_errno;
  13. }
  14. else
  15. {//polaczenie nawiazane:
  16.  
  17. //pobranie danych z formularza
  18. $login =mysql_real_escape_string( $_POST['login']);
  19. $haslo1 =mysql_real_escape_string( $_POST['haslo1']);
  20. $haslo2 = $_POST['haslo2'];
  21. $nazwisko = $_POST['nazwisko'];
  22. $imie = $_POST['imie'];
  23. $email = $_POST['email'];
  24. //*************************kodowanie "SÓL"***************************
  25. $salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
  26.  
  27. $saltedPW = $haslo1 . $salt;
  28. $hashedPW = hash('sha256', $saltedPW);
  29. //zapytanie sql
  30.  
  31. //do sprawdzenia, czy login nie jest juz zajety
  32. $sql_login = "select * from uzytkownik where login ='$login'";
  33.  
  34. //do sprawdzenia, czy email nie jest juz zajety
  35. $sql_email = "select * from uzytkownik where email ='$email'";
  36.  
  37. $sql_email="INSERT INTO `projekt`.`uzytkownik` (`id`, `Imie`, `Nazwisko`, `email`, `login`, `haslo`, salt) VALUES (NULL, '$imie', '$nazwisko', '$email', '$login', '$hashedPW', '$salt')";
  38. ?>


Z gory dziekuje za pomoc. smile.gif

Ten post edytował cvanyy 16.11.2015, 22:06:11
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 19:05