Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z szyfrowaniem
Forum PHP.pl > Forum > Przedszkole
zomfire
Witam, gdy stworzyłem skrypt rejestracji oraz logowania i gdy dodaje linijkę $password = md5($password); to hasło zapisane w bazie jest szyfrowane, jednak potem nie mogę się zalogować.

Logowanie
  1. $password = md5($password);
  2. $login = mysql_real_escape_string($_POST['login']);
  3. $password = mysql_real_escape_string($_POST['password']);
  4. $sql = mysql_num_rows(mysql_query("SELECT * FROM klienci WHERE login = '$login' AND haslo = '$password'"));

Rejestracja
  1.  
  2. $loginr = mysql_real_escape_string($_POST['loginr']);
  3. $passwordr = mysql_real_escape_string($_POST['passwordr']);
  4. $passwordr=md5($passwordr);
  5. mysql_query("INSERT INTO `klienci` (login, haslo) VALUES('$loginr','$passwordr')") or die('<font color="red">Rejestracja nie powiodła się!</font>');
  6. echo '<font color="green">Twoje konto zostało pomyślnie utworzone! Możesz się zalogować.</font>';


Zmienne loginu i hasła są różne przy formularzach.
fastlone
  1. $password = md5($password);
  2. $login = mysql_real_escape_string($_POST['login']);
  3. $password = mysql_real_escape_string($_POST['password']);
  4. $sql = mysql_num_rows(mysql_query("SELECT * FROM klienci WHERE login = '$login' AND haslo = '$password'"));

Najpierw hashujesz md5 zmienną, która nie istnieje, a dopiero potem ją odczytujesz.
Zrób to w ten sposób:
  1. $login = mysql_real_escape_string($_POST['login']);
  2. $password = md5(mysql_real_escape_string($_POST['password']));
  3. $sql = mysql_num_rows(mysql_query("SELECT * FROM klienci WHERE login = '$login' AND haslo = '$password'"));
zomfire
No wiem, to powinno być niżej. Ale zmieniłem na tak jak pisałeś i to samo. W rekordzie widnieje zaszyfrowane hasło. Ale zalogować się nie da.
Pyton_000
a jakiej długości masz pole na hasło w BD?
zomfire
Cytat(Pyton_000 @ 27.01.2015, 18:45:35 ) *
a jakiej długości masz pole na hasło w BD?

Małe, bo 15 smile.gif Ile powinno być ?
Pyton_000
32 bo tyle ma hash MD5

Ale radziłbym zmienić hashowanie na coś mocniejszego np. http://php.net/manual/en/function.password-hash.php
a do tego wtedy zwiększenie rozmiaru do tylu ile wymaga hash.
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.