0

データベースに保存されているハッシュ化されたパスワードをユーザーが入力したパスワードと比較するにはどうすればよいですか。ユーザーがログインできるようにする必要があります。

パスワードをハッシュ化した方法は次のとおりです(phps cryptメソッドを使用)

$hashedpass = crypt($password);
            $sql = "INSERT INTO accounts (username,password,email) VALUES('{$username}','{$hashedpass}','{$email}')";
            $conn->query($sql); 

これは、それらをユーザー入力と比較する方法です

$username = trim($_POST['username']);
        $password = crypt($_POST['password']);
        $sql = "SELECT * FROM accounts WHERE username = '{$username}'  &&  password = '{$password }'LIMIT 1";
        echo "$sql";
        $rs = $conn->query($sql);
        $numRows = $rs->num_rows;
        if($numRows == 1){
            echo "you may log in";
        }

パスワードを正しく入力したことは 100% 確信していますが、問題は mysql が結果を表示していないことです。

4

1 に答える 1

0

crypt のPHP ドキュメントを参照してください。SALT 値を指定していないため、多くの場合、ある値のハッシュが同じ値の別のハッシュと一致しないストレージ結果が得られます。

于 2012-06-24T08:24:52.780 に答える