Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] rejestracja/logowanie, problem z hasłem
Forum PHP.pl > Forum > Przedszkole
blackest
Witam,
Piszę swój system logowania/rejestracji, jak na razie wszystko działa, ale natrafiłem na problem, i za bardzo nie wiem jak go rozwiązać. Mianowicie mam kod php w którym wysyłam dane do bazy danych i to wygląda tak:
  1. <?php
  2. $sql_insert = "INSERT INTO users(username,password,que,ans,email,is_admin,is_active,regdate,regtime) 
  3.  VALUES ('$user',PASSWORD('$pass1'),'$que','$ans','$email',0,0,'$date','$time');";
  4. ?>


myk jest z funkcją PASSWORD(), otóż wiem że ona liczy hash z podanego hasła.
Po przeprowadzonej rejestracji w bazie jest nazwa usera i jego hasło, co wygląda tak:

Kod
<BR>+----------+-----------------------------------------------+<BR><BR>| username | password  |<BR><BR>+----------+-----------------------------------------------+<BR><BR>| username | *84aac12f54ab666ecfc2a83c676908c8bbc381b1 |<BR><BR>+----------+-----------------------------------------------+<BR><BR>


zhashowany tekst odpowiada hasłu '12345678'
problem w tym że hash uzyskany przy pomocy kalklulatora znalezionego na necie i funkcji sha1() z php są takie same, ale NIE takie same jak ten w zapisany w bazie danych.

Moje pytanie jest takie:
Jakie jest mechanizm hashowania przez mysql'a ? (znając ten mechanizm bede wiedział jak to zrobić w kodzie)

Pozdrawiam


ps
Mam pewnien pomysł jak to zmotać. Po wpisaniu prawidłowego hasła podczas rejestr
cji zostanie ono zhashowane przez sha1,
i w postaci hasha zostanie wysłane do bazy. Wszystko bez użycia funkcji PASSWORD
). Na razie tego nie stosują, gdyż chcę się dowiedzieć co funkcja PASSWORD() robi z hasłem .
Maxik
Po co sobie utrudniać? Daj md5($pass1), zapisz do bazy, potem przy logowaniu też koduj md5 i już.
RubiX
dokładnie najlepiej w md5

  1. <?php
  2. $sql_insert = "INSERT INTO users(username,password,que,ans,email,is_admin,is_active,regdate,regtime) 
  3.  VALUES ('$user',md5('$pass1'),'$que','$ans','$email',0,0,'$date','$time');";
  4. ?>


a przy wyciąganiu:

  1. <?php
  2. $pass1 = md5($pass1);
  3. $sql_mysql = "SELECT * FROM users WHERE username='$login' AND password='$pass1'";
  4. ?>


I po kłopocie tongue.gif
blackest
dzięki smile.gif
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.