申し訳ありませんが、これはばかげているかもしれませんが、Phpassについて私が理解していないことがあります。次のような安全なハッシュパスワードを作成できる場合:
$pwdHasher = new PasswordHash(8, FALSE);
$hash = $pwdHasher->HashPassword( $password );
後で次のように確認します。
$checked = $pwdHasher->CheckPassword($password, $hash);
つまり、論理的には、パスワードは特定のマシンでのみ読み取ることができるように保存する必要があります(そうでない場合、誰かが別のマシンの「CheckPassword」機能を使用してパスワードを取得する可能性があります)。Phpassはこれをどのように行いますか?
将来、Webサイトを新しいサーバーに移動する必要がある場合、これは問題になりませんか?サーバーに重大な障害が発生した場合にすべてのパスワードを回復できるように、データベースを安全にバックアップするにはどうすればよいですか?(私は何か明らかなものが欠けていますか?)
編集-以下のコメントに応えて、異なるマシンがそれに影響を与えない場合、ハッカーが私のデータベースにアクセスした場合、なぜ彼らは自分のマシンでCheckPasswordを実行して元のパスワードを取得できないのですか?申し訳ありませんが、明らかな何かが欠けているに違いありません。
編集2-くそー、私は明らかな何かが欠けていました。比較関数は、指定されたパスワードをハッシュされたパスワードと照合するだけで、trueまたはfalseを返します。実際にパスワード自体にアクセスする必要はありません。ばかげたことをお詫びします!