Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Różne wersje PHP, różne wyniki funkcji crypt(), Jak zmusić PHP 5.4.4 do zachowania jak PHP 5.2.5
karakara
post 22.02.2013, 11:18:44
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 6
Dołączył: 22.09.2012

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


Kod:
  1. echo $a = 'stackoverflow';
  2. echo '<br>';
  3. echo $b = '$2a$10$bf57caf7e1fa23e4b975ab';
  4. echo '<br>CRYPT:<br>';
  5. echo crypt($a, $b);


Wynik dla PHP 5.2.5
Cytat
stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2.LaeiP21fsQ


Wynik dla PHP 5.4.4
Cytat
stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2a$10$bf57caf7e1fa23e4b975aOhXjTtYrqOYLfHsxdOxGRhF03.LtKewW


Chce przenieść skrypt na nowy serwer, do tego potrzebuje zmusić PHP 5.4 do zachowania jak 5.2.5 (czyli chciałbym w 5.4 uzyskać ten sam wynik co 5.2.5)
Gdy do soli dodam $ na końcu to i tak nie ma różnicy.

Jak możecie się domyślać pytanie zadałem też na StackOverflow jak narazie bez rezultatu (http://stackoverflow.com/questions/15021135/different-versions-of-php-different-results-of-crypt)

Proszę o pomoc.

Ten post edytował karakara 22.02.2013, 11:19:41
Go to the top of the page
+Quote Post
timon27
post 22.02.2013, 11:36:50
Post #2





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


Różnice w funkcji crypt() nie wynikają bezpośrednio z różnych wersji php, tylko z zainstalowanej funkcji hashującej.
Jeśli możesz i masz możliwość musisz zmienić funkcję hashującą.
Jeśli nie, to po prostu zrezugnuj z funkcji crypt i skorzystaj z normalnego hashowania z solą.

Ten post edytował timon27 22.02.2013, 11:38:44
Go to the top of the page
+Quote Post
sowiq
post 22.02.2013, 11:42:21
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(timon27 @ 22.02.2013, 11:36:50 ) *
Jeśli nie, to po prostu zrezugnuj z funkcji crypt i skorzystaj z normalnego hashowania z solą.


php.net powiada:
Cytat
Why are common hashing functions such as md5() and sha1() unsuitable for passwords?
Hashing algorithms such as MD5, SHA1 and SHA256 are designed to be very fast and efficient. With modern techniques and computer equipment, it has become trivial to "brute force" the output of these algorithms, in order to determine the original input.
Because of how quickly a modern computer can "reverse" these hashing algorithms, many security professionals strongly suggest against their use for password hashing.


Jednym słowem, ze względu na dużą obecnie moc obliczeniową komputerów, md5 czy sha1 są zbyt łatwe do złamania metodą brute force, więc powinno się wykorzystywać powolniejsze metody.

[edit]
@karakara, zerknij tutaj: https://bugs.php.net/bug.php?id=60073&edit=1
Ktoś wrzucił podobny problem jako bug w PHP. Odpowiedź brzmi:
Cytat
"$2C9b17FGUTd." is not a valid Blowfish hash. You got this output on earlier versions of PHP where CRYPT_BLOWFISH was not supported, or perhaps a buggy version was being used. PHP 5.3.8 is returning the correct hash.

Zgadza się to z tym, co Ty otrzymywałeś. Ciąg "$2.LaeiP21fsQ" jest zdecydowanie za krótki jak na hash...

Ten post edytował sowiq 22.02.2013, 11:49:26
Go to the top of the page
+Quote Post
karakara
post 22.02.2013, 11:51:20
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 6
Dołączył: 22.09.2012

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


ktoś kiedyś podesłał mi rozwiązanie z hashowaniem haseł przy pomocy crypt() a ja tego użyłem zamist zwyklego np. sha384 ze solą
tak więc zmiana funkcji hashującej jest trudna ponieważ nie mam haseł użytkowników, musiałbym wymusić na wszystkich zmianę hasła

I dlatego szukam innego rozwiązania aby nie stracić tych danych albo nie wymuszać zmiany haseł.
Go to the top of the page
+Quote Post
sowiq
post 22.02.2013, 11:58:15
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Zobacz wyedytowaną część mojego posta.

Bardzo dobrze, że użyłeś crypt() - jest to obecnie zalecany sposób hashowania haseł. Szkoda tylko, że od początku nie wydało Ci się podejrzane, że hash jest bardzo krótki (porównywalny z długością hasła).

Swoja drogą, jeśli dobrze pamiętam, w którejś wersji PHP był taki bug, że funkcja crypt() zawsze zwracała tylko salt. Takie rzeczy niosą dosyć poważne konsekwencje smile.gif
Go to the top of the page
+Quote Post
!*!
post 22.02.2013, 11:59:07
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(karakara @ 22.02.2013, 11:51:20 ) *
I dlatego szukam innego rozwiązania aby nie stracić tych danych albo nie wymuszać zmiany haseł.


To zmień je w locie zaraz przy zalogowaniu.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
sowiq
post 22.02.2013, 12:22:10
Post #7





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(!*! @ 22.02.2013, 11:59:07 ) *
To zmień je w locie zaraz przy zalogowaniu.

Ale wypadałoby najpierw jakoś sprawdzić, czy dane logowania się zgadzają ;)
Go to the top of the page
+Quote Post
!*!
post 22.02.2013, 12:23:49
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(sowiq @ 22.02.2013, 12:22:10 ) *
Ale wypadałoby najpierw jakoś sprawdzić, czy dane logowania się zgadzają wink.gif

Logiczne że zmianę robisz PO wink.gif


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
karakara
post 22.02.2013, 12:26:25
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 6
Dołączył: 22.09.2012

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


tak pewnie zrobię i liczę na to, że dużo osób się zaloguje.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 01:29