1

こんにちは、PHP で password_hash() を使用してパスワードをハッシュしようとしています。この部分は問題ありませんが、ハッシュを比較すると、何があっても false が返されます。ログインするには、ユーザー アカウント データベースをチェックしてパスワード ハッシュを取得し、入力したパスワードと比較します。私のコードは次のようになります。

$password = $_SERVER["PHP_AUTH_PW"];
$hash = $row["password"];
if (password_verify($password, $hash)) {
    // CREATE SESSION VARIABLES //
}
else{
     header("HTTP/1.1 404 Not Found");
}

ご覧のとおり、入力されたパスワードは HTTP ヘッダーに取り込まれます。これをデータベース内のパスワードと直接比較できるため(ハッシュなしで)、これがパスワード文字列を混乱させるとは思いませんでした。何か案は?PHPのバージョンを3回チェックしましたが、パスワードをハッシュできるので、そうではありません。

4

1 に答える 1

2

したがって、 password_verify() 関数に問題はありません。password_hash() 関数に文字列のビットが追加されました。この関数を公式ドキュメントからコピーして貼り付けました。

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."\n";

最後の ."\n" ビットは、検証機能で考慮されていませんでした。これはコピーと貼り付けでここだけだったので外したら大丈夫でした。これが将来他の人に役立つことを願っています。

于 2013-08-07T11:01:22.810 に答える