Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Dziwne zachowanie się funkcji ENCRYPT()
lorak110786
post
Post #1





Grupa: Nieautoryzowani
Postów: 34
Pomógł: 1
Dołączył: 22.06.2009
Skąd: Koszalin/Poznań

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


Mam tabele z zapisanymi historycznymi haszami haseł dla użytkowników (tak aby uniemożliwić ustawienie tego samego hasła po wymuszonej zmianie). Hasze są generowane funkcją crypt() w skrypcie php. Załóżmy ze jakaś osoba miała hasło 'qwer1234'.

Gdy wykonuje takie zapytanie
  1. SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba=1037 AND oh_haslo=ENCRYPT('qwer1234', oh_haslo)

dostaję w wyniku rekord w którym było użyte to hasło

Jednak co ciekawe, gdy wpiszę takie zapytanie:
  1. SELECT oh_id, oh_data FROM osoba_historia WHERE oh_osoba=1037 AND oh_haslo=ENCRYPT('qwer1234ABC', oh_haslo)

również dostanę w wyniku ten rekord. Dla czego? Wszak podałem zupełnie inne (z punktu widzenia programu) hasło. Takie same jest tylko 8 pierwszych liter, a mimo to wychodzi na to że hasło jest takie samo. O co tu chodzi?

DODANE:
Tak sobie testuje i zauważyłem że funkcja ENCRYPT korzysta tak jakby z pierwszych ośmiu znaków hasła. Czemu tak się dzieje?

Ten post edytował lorak110786 11.01.2010, 23:19:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


http://dev.mysql.com/doc/refman/5.1/en/enc...unction_encrypt

Cytat
ENCRYPT() ignores all but the first eight characters of str, at least on some systems. This behavior is determined by the implementation of the underlying crypt() system call.
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: 14.10.2025 - 19:59