Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] rejestracja/logowanie, problem z hasłem
blackest
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.11.2007

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


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 .
Go to the top of the page
+Quote Post
Maxik
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Po co sobie utrudniać? Daj md5($pass1), zapisz do bazy, potem przy logowaniu też koduj md5 i już.
Go to the top of the page
+Quote Post
RubiX
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

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


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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
blackest
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.11.2007

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


dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 23:16