gpt4 book ai didi

php - 将密码与从数据库查询的哈希值进行比较?

转载 作者:行者123 更新时间:2023-11-29 13:07:23 24 4
gpt4 key购买 nike

我向 php 发送一个密码,以便与数据库中存储的哈希值进行比较。

我的PHP是:

$enteredUser = $_POST["username"];
$enteredPass = $_POST["password"];
$query = mysqli_query($con, "SELECT passhash FROM user WHERE `username` = '$enteredUser'");
$passHash = mysql_result($query, 0);
if(password_verify($enteredPass, $passHash)){
echo "success";
}else{
echo "failure";
}

我也尝试过使用mysqli_fetch_array(),但它仍然不起作用。有谁知道为什么这不起作用?预先感谢任何可以提供帮助的人。 (附带说明,$passHash 返回 null)

最佳答案

您正在混合两个扩展,mysqli 和 mysql - mysqli_query,然后是 mysql_result

您也对 SQL 注入(inject)持开放态度,并且应该在将 POST 输入直接传递到 MySQL 之前对其进行清理。

mysqli_query 返回一个结果对象,然后您需要从该对象中获取结果。

mysqli_fetch_row 将返回一行。

$enteredUser = $_POST["username"];
$enteredPass = $_POST["password"];
//...
$resultset = mysqli_query($con, "SELECT passhash FROM user WHERE `username` = '$enteredUser'");
$result = mysqli_fetch_row($resultset);
if(password_verify($enteredPass,$result[0])){
echo "success";
}else{
echo "failure";
}

关于php - 将密码与从数据库查询的哈希值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521463/

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