Я впервые использую функцию crypt () в PHP, и я не могу понять, почему она не работает. Мой код основан на этой статье: http://www.techrepublic.com/blog/australia/securing-passwords-with-blowfish/1274.
function blowfishHash ($pw) {
//generate random salt
$salt = "$2y$10$";
for ($i = 0; $i < 22; $i++) {
$salt .= substr("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 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;
}
Я вызвал функцию с образцом пароля «пароль».
Полученная соль была: $2y$10$NzRQNjTRfP4jXKvb4TCO.G
Но пароль был "$2mV0NZp92R3g"
, что кажется слишком коротким.
Может ли кто-нибудь помочь мне понять, что я делаю не так?
fwrite($file, "\n\n\n".$str);
$ str кажется неопределенным. - person DWright   schedule 15.01.2013