gpt4 book ai didi

php - password_verify 不验证哈希

转载 作者:可可西里 更新时间:2023-11-01 12:46:00 24 4
gpt4 key购买 nike

我通过 password_hash 散列我插入的密码。我使用 password_verify 验证它们。

然而,当我在我的数据库中插入一个散列密码并尝试验证它时,两个输出总是彼此不同。

我的页面如下,

main_login.php(表单):

<?php include 'header.php';?>
<body>
<form role="form" method="post" action="login.php">
<div class="form-group">
<label for="usrname">Username:</label>
<input type="text" class="form-control" name="usrname" placeholder="Enter username">
</div>
<div class="form-group">
<label for="passwrd">Password:</label>
</div>
<input type="password" class="form-control" name="passwrd" placeholder="Enter password">
<br>
<input type="checkbox">Remember Me
<br>
<br>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>

login.php(处理程序):

<?php
include 'vars.php';
include 'header.php';
$sql="SELECT * FROM members WHERE usrname='$usrname'";
$result=mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
$row=mysqli_fetch_row($result);
$verify=password_verify($hash,$row[2]);
if($verify){
$_SESSION["usrname"]=$usrname;
echo "Correct";
}
else {
echo "user: " . $usrname. "<br>";
echo "pass: " . $hash. "<br>";
echo "db: " . $row[2]."<br>";
echo "Wrong Username or Password";
}
?>

变量.php:

<?php
$h='localhost';$u='caelin';$p='****';$d='ombouwnh';
$con=mysqli_connect($h,$u,$p,$d);
$usrname=$_POST['usrname'];
$passwrd=$_POST['passwrd'];
$hash=password_hash($passwrd, PASSWORD_DEFAULT);
?>

当我尝试使用用户名“caca”和密码“caca”登录时,我每次重试时都会得到不同的输出。我在 stackoverflow 上找不到这个特殊问题。

TIA

附言。如果您需要更多详细信息,请询问他们

最佳答案

password_verify(); 函数有两个参数;一个非散列输入,以及一个存储的散列来与之进行比较。它会自动对非哈希输入进行哈希处理,以将其与存储的版本进行比较。所以你的初始代码是重新散列一个已经散列的密码。应如下所示:

$verify=password_verify($_POST['passwrd'],$row[2]);

if($verify){
$_SESSION["usrname"]=$usrname;
echo "Correct";
}
else {
echo "user: " . $usrname. "<br>";
echo "pass: " . $hash. "<br>";
echo "db: " . $row[2]."<br>";
echo "Wrong Username or Password";
}

关于php - password_verify 不验证哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com