Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Różne wersje PHP, różne wyniki funkcji crypt(), Jak zmusić PHP 5.4.4 do zachowania jak PHP 5.2.5
karakara
post
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
 
Start new topic
Odpowiedzi
timon27
post
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
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

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: 11.10.2025 - 03:28