• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt zakodowanego loginu w md5.

+3 głosów
1,562 wizyt
pytanie zadane 5 kwietnia 2015 w PHP przez HaKIM Szeryf (87,590 p.)

Cześć. Tak jak w temacie. Zrobiłem skrypt na rejestracje, a więc dałem login i hasło w md5... Chociaż nie wiem czy login powininenem. Ale do rzeczy. Gdy odczytuję te imię z bazy wyświetla mi się zamiast oryginalnego "Sebastiana" wersja zakodowanego w md5. Prosiłbym o wyjaśnienie jak takie imię odczytać w formie "normalnej".  Pozdrawiam. Imię odczytuję w taki sposób: 

        $wiersz = $result->fetch_assoc();
        $_SESSION['imie'] = $wiersz['imie'];

 

2 odpowiedzi

+5 głosów
odpowiedź 5 kwietnia 2015 przez Wally Bywalec (2,840 p.)
wybrane 5 kwietnia 2015 przez HaKIM
 
Najlepsza
Nie da się tego zrobić w drugą stronę. To działa tylko w jedną stronę. MD5 używasz tylko do zakodowania hasła. W skrypcie porównujesz tylko czy md5(wpisanego hasła na stronie) jest równe temu w bazie (zakodowanego md5). Jest to po to, że gdyby ktoś dostał dane z twojej bazy to i tak nic mu to nie da, bo hasło jest zakodowane a jego nie da się zdekodować.
komentarz 5 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
To jak mam wyświetlić tak jak na facebooku "Sebastian"? Oni nie kodują imion/loginu?
komentarz 5 kwietnia 2015 przez Harsay Pasjonat (23,640 p.)

Jedynie co musisz zakodować w MD5 to hasło użytkownika.
Login często jest użwyany w celu identyfikacji użytkowników między sobą.

Odkodowanie jest możliwe. Jednakże to jest kwestia szczęścia biorąc pod uwagę "naturę" MD5. Są specjalne narzędzia do tego np. to.

komentarz 5 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
Dobra, dzięki... A jak facebook to robi że jak chcę zmienić hasło to wyświetla się ono i ma tyle samo liter co prawidłowe, a nie 32 losowe literki?
komentarz 5 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)

Długość hasła można zapisać jako osobną daną w bazie danych, niekodowaną przy wpisaniu hasła przez użytkownika (w php funkcja strlen).

komentarz 5 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
Mhm. Serdecznie dziękuję Wszystkim za pomoc.
+1 głos
odpowiedź 5 kwietnia 2015 przez Wiktor Gawronski Początkujący (300 p.)

Jestem w tym początkujący, ale zrobiłem to tak.

$nick = strtolower($_POST['nickname']);
$password = md5($_POST['password']);
$qry = mysql_query("SELECT * FROM `Accounts` WHERE LCASE(`nickname`) = '$nick'");
$pw = mysql_fetch_array($qry);
$odp = $pw['password'];
if($odp == $password){
                $_SESSION['user_id'] = $pw['id'];
		$_SESSION['username'] = $pw['nickname'];
		$_SESSION['email'] = $pw['email'];
}

Mam nadzieję, że pomoże Ci to jakoś.

komentarz 5 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)

Ale strtolower zmienia lietry na małe. Przynajmniej tak zauważyłem w: http://php.net/manual/en/function.strtolower.php A Sebastian zaczyna się z dużej. : p

komentarz 5 kwietnia 2015 przez Wiktor Gawronski Początkujący (300 p.)
W bazie danych nickname jest zarejestrowany z dużej litery, ale jak pewnie wiesz ludzie nie lubią dbać o duże litery podczas logowania czyli zamiast XxYyZabijaka łatwiej i szybciej wpisuje sie xxyyzabijaka i po to użyłem tutaj strtolower.

Głównie chodziło o to, że możesz porównać zakodowane hasło z bazy danych (w tym przypadku $odp i zakodować podane przez użytkownika hasło podczas logowania.

Podobne pytania

0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 22 marca 2022 w PHP przez MKolaj15 Bywalec (2,270 p.)
+1 głos
1 odpowiedź 747 wizyt
pytanie zadane 11 marca 2019 w Python przez Pico Obywatel (1,330 p.)
0 głosów
1 odpowiedź 621 wizyt
pytanie zadane 6 lutego 2018 w PHP przez Kiele Obywatel (1,530 p.)

93,605 zapytań

142,529 odpowiedzi

322,999 komentarzy

63,094 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...