Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] kodowanie hasła
Chemiq
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

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


mam system rejestracji i logowania. jest w nim zapisywanie zakodowanego hasła i działa jak należy. problem zaczyna się gdy trzeba się zalogować. przyjrzałem się problemowi i doszedłem do wniosku że hasło mimo wszystko nie jest rozkodowywane. oto kod odpowiadający za odczytywanie zakodowanego hasła:
  1. $sql = "SELECT * FROM `uzytkownik` WHERE login = '$login' AND haslo = PASSWORD('$haslo')";
  2. $result = mysql_query($sql);

jak przy logowaniu wstawie zamiast normalego hasła to zakodowane to można się zalogować.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rama
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 25.02.2006
Skąd: Trójmiasto

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


Hmm, funkcja password() z MySQL działa tylko w jednym kierunku (wyłącznie szyfruje).
Cytat(Manual SQL)
PASSWORD() encryption is one-way (not reversible).
Jednakże, aby porównać hasło z tym którym znajduje się w bazie możesz spróbować użyć również tej funkcji password() do zakodowania "plain password".

Przykład (koncept):
  1. <?php
  2. /**
  3.  * $passwd to hasło do zakodowania
  4.  */
  5. $passwd = 'test';
  6.  
  7. $mo = mysql_connect( 'server', 'user', 'pass' );
  8. $ms = mysql_select_db( 'db' );
  9. $pr = mysql_query( "SELECT PASSWORD( '$passwd' ) as password" );
  10.  
  11. /**
  12.  * W zmiennej $row znajduje się hasło wygenerowane przez funkcję
  13.  * mysql password() 
  14.  */
  15. $row = mysql_result( $pr, 'password' );
  16.  
  17.  print '<pre>' . print_r( $row, true ) . '</pre>';
  18.  
  19. mysql_close( $mo );
  20. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.04.2026 - 12:13