Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Szyfrowanie SHA1
Forum PHP.pl > Forum > Przedszkole
Yhy
Mam dziwny problem i za cholerę nie mogę pojąć o co w nim biega.

Otóż przy zakładaniu konta szyfruję hasła metodą sha1, wszystko okej, konto jest tworzone, następnie próbuję się zalogować i o dziwo dane nie są zgodne. Wyjaśniając, pobieram dane z formularza, następnie szyfruję hasło za pomocą sha1 i z tego co sprawdzałem to szyfrowanie różni się od tego które mam w bazie.

Sprawdzałem jak wygląda hasło tuż przed szyfrowaniem podczas logowania i rejestracji i są one identyczne, wygląda na to że sha1 różnie szyfruje jedno i to samo słowo.

Jakieś pomysły?
blooregard
Sprawdź, czy masz to samo kodowanie w bazie i w skryptach.

Sprawdź, czy razem z hasłem do f-cji sha1 nie leci Ci jakiś biały znak.
Twist
Wstaw kod odpowiedzialny za sprawdzanie hasła i zapis w bazie
Yhy
Kodowania ustawione są w taki sam sposób. Kod logowania -

  1. tutaj był kod
blooregard
Pokaż fragment kodu odpowiedzialny za zapis hasła do bazy, bo tam jest problem.
Yhy
Cytat(blooregard @ 11.10.2011, 16:46:16 ) *
Pokaż fragment kodu odpowiedzialny za zapis hasła do bazy, bo tam jest problem.


Jest wyżej.
blooregard
Cytat(Yhy @ 11.10.2011, 16:50:59 ) *
Jest wyżej.



Za ZAPIS DO BAZY, a nie za odczytanie przy logowaniu.

Ja tam żadnego INSERT-a nie widzę.
Yhy
Wybacz, zamyśliłem się.

  1. tutaj był kod
blooregard
Też wygląda ok.

W momencie dodawania konta zrób sobie var_dump na tablicy $_POST i zobacz hasło, jakie leci z formularza.
Ewentualnie dla pewności potraktuj je jeszcze trim() przed zahaszowaniem sha1().

Yhy
Cytat(blooregard @ 11.10.2011, 17:03:07 ) *
Też wygląda ok.

W momencie dodawania konta zrób sobie var_dump na tablicy $_POST i zobacz hasło, jakie leci z formularza.
Ewentualnie dla pewności potraktuj je jeszcze trim() przed zahaszowaniem sha1().


Sprawdzałem jak wygląda hasło tuż przed zahaszowaniem i było poprawne.
blooregard
Nie ma bata, żeby dwa identyczne ciągi znaków dały inny hasz.

Sprawdzaj i porównuj hasze na każdym etapie działania skryptu, od momentu przejęcia gołego ciągu z POST-a.

A czy metoda $sql->sqlQuery() nie wykonuje jeszcze jakiś dodatkowych operacji na wartościach zapisywanych do bazy?
Yhy
Cytat(blooregard @ 11.10.2011, 17:13:32 ) *
Nie ma bata, żeby dwa identyczne ciągi znaków dały inny hasz.

Sprawdzaj i porównuj hasze na każdym etapie działania skryptu, od momentu przejęcia gołego ciągu z POST-a.

A czy metoda $sql->sqlQuery() nie wykonuje jeszcze jakiś dodatkowych operacji na wartościach zapisywanych do bazy?


Nic dodatkowego, dziwna sprawa bo w przypadku rejestracji hasło jest haszowane w taki sam sposób, a sprawdzając jak wygląda hasz po tuż przed wykonaniem zapytania przy logowaniu, jest ono zupełnie inne. Natomiast jeszcze przed zahaszowaniem, hasła są one identyczne w obu przypadkach.

Rozwiązałem problem - błędny typ pola w bazie.
blooregard
Cytat
Rozwiązałem problem - błędny typ pola w bazie.


No widzisz.
Zawsze jest jakiś błąd.

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.