これは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"
です。これはかなり短すぎます。
誰かが私が間違っていることを理解するのを助けてくれますか?
私はあなたの例をテストしました。これは記事と全く同じ結果を出力します。どのように$パスワードを出力/デバッグしますか?ウェブサイトで? 1 cli? – hek2mgl
私はファイルに印刷しました(私はそのコード行を省略しました)。この機能に必要なPHPの特定のバージョンはありますか? – user1403777
どのバージョンをお使いですか? (私は使用しています:5.3.10-1ubuntu3.4) – hek2mgl