這是我第一次在PHP中使用crypt()函數,我無法弄清楚它爲什麼不起作用。我的代碼是基於這篇文章:http://www.techrepublic.com/blog/australia/securing-passwords-with-blowfish/1274PHP crypt()Blowfish函數不起作用
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;
}
我打電話與樣品密碼「密碼」的功能。
得到的鹽是:$2y$10$NzRQNjTRfP4jXKvb4TCO.G
但密碼是"$2mV0NZp92R3g"
- 這似乎太低了。
有人能幫我弄清楚我做錯了什麼嗎?
我測試了你的例子,它的輸出與文章中的完全一樣。你如何輸出/調試$密碼。在網站上?每cli? – hek2mgl
我剛剛打印到一個文件(我省略了代碼行)。是否有此功能所需的PHP的特定版本...? – user1403777
你使用什麼版本? (我正在使用:5.3.10-1ubuntu3.4) – hek2mgl