如何验证哈希密码?

时间:2018-12-25 06:39:54

标签: php sql hash md5

注册新用户后,代码使用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();
   }
  } 
}

1 个答案:

答案 0 :(得分:-1)

您只需将密码从表格转换为MD5即可进行比较。

$password=md5($_POST['password']);

我希望它将对您有帮助。 谢谢。