0

mysql ate データベースでのユーザー ログイン プロセスで php pdo を使用しています。パスワード暗号化のために bCrypt ライブラリを試しました。しかし、暗号化されたパスワードで入力パスワードを確認する方法について混乱していますか?

これが私の試みたコードです:

$bcrypt = new Bcrypt(15);
$hash = $bcrypt->hash($password);
$isGood = $bcrypt->verify($password, $hash);

$login = new UserManager();
$getuserInfo = $login -> checkLogin($username, $password);
foreach ($getuserInfo as $userInfo) :
  if ($userInfo -> getUID() == $username) {
    if($userInfo -> getPassword() == $password) ?
  }
endforeach;
4

1 に答える 1

0

まず、しないでください。既存のパスワード ライブラリを使用します。パスワードを安全に処理することは、適切に行うのが非常に難しく、ほぼ確実に間違ってしまいます。

2 番目: この方法ではパスワードを比較できません ( $userInfo->getPassword() == $password)。ハッシュ化されたパスワードを保存したと仮定すると(投稿したわずかなコードからは明らかではありません)、 hash$passwordし、ハッシュ化された値を保存されたハッシュと比較する必要があります。これがパスワードハッシュの要点です。ハッシュは同じ入力から同じ出力を生成するため、アカウントの作成時にパスワードのハッシュの不可逆的な出力を保存し、ログイン時に新しく送信されたパスワードをハッシュし、結果を保存されたものと比較します。ハッシュ。

于 2013-05-24T16:31:32.510 に答える