To jest moja pierwsza próba użycia funkcji crypt() w PHP i nie mogę zrozumieć, dlaczego to nie działa. Mój kod jest na podstawie tego artykułu: http://www.techrepublic.com/blog/australia/securing-passwords-with-blowfish/1274PHP crypt() Funkcja Blowfish nie działa
function blowfishHash ($pw) {
//generate random salt
$salt = "$2y$10$";
for ($i = 0; $i < 22; $i++) {
$salt .= substr("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", mt_rand(0, 63), 1);
}
$hash = crypt($pw, $salt);
//printout to file
$file = fopen("debug.txt", "w+");
fwrite($file, "\n\n\n".$pw);
fwrite($file, "\n\n\n".$salt);
fwrite($file, "\n\n\n".$hash);
fclose($file);
return $hash;
}
Zadzwoniłem funkcję próbki z hasłem „password”.
Powstała sól: $2y$10$NzRQNjTRfP4jXKvb4TCO.G
Ale hasło było "$2mV0NZp92R3g"
- co wydaje się zdecydowanie zbyt krótkie.
Czy ktoś mógłby mi pomóc wyjaśnić, co robię źle?
Przetestowałem twój przykład i wyprowadza dokładnie to samo, co w tym artykule. Jak wyprowadzać/debugować hasło $. Na stronie internetowej? za cli? – hek2mgl
Właśnie wydrukowałem plik (pominąłem linie kodu). Czy jest wymagana określona wersja PHP dla tej funkcji ...? – user1403777
Jakiej wersji używasz? (Używam: 5.3.10-1ubuntu3.4) – hek2mgl