注册新用户后,代码使用BCRYPT和MD5创建哈希,如下所示:
$password = $mysqli->escape_string(password_hash($_POST['password'],
PASSWORD_BCRYPT));
$hash = $mysqli->escape_string( md5( rand(0,1000) ) );
一旦用户名,密码和哈希位于SQL数据库中,我要验证密码。问题在于,下面的代码正在将哈希密码与输入到表单中的密码进行比较...
如何将表单中键入的密码与数据库中存储的哈希密码进行比较?
我有以下代码:
function getLogin($conn) {
if (isset($_POST['loginSubmit'])){
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE email='$email' AND password='$password'" ;
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 1) {
if($row = $result->fetch_assoc()) {
$_SESSION['id'] = $row['id'];
$_SESSION['email'] = $row['email'];
header("Location: indexcomments_merge.php?logiinsuccess");
exit();
}
} else {
header("Location: indexcomments_merge.php?logiinfailed");
exit();
}
}
}
答案 0 :(得分:-1)
您只需将密码从表格转换为MD5
即可进行比较。
$password=md5($_POST['password']);
我希望它将对您有帮助。 谢谢。