尝试从数据库验证哈希密码,用户通过POST输入。经过一些简短的研究,这个问题可能与无法将mysqli_查询转换为字符串有关,尽管我不知道如何正确地转换,因此我从另一个SO问题中添加了fetch_object()等。我还充分考虑了has的长度,列设置为varchar(255)。感谢您的帮助和指导,谢谢。

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$password = $_POST['password'];
$db_password = mysqli_query($conn, 'SELECT password FROM sec')->fetch_object()->password;

if (password_verify($password, $db_password)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

最佳答案

首先从数据库中获取密码哈希,然后在哈希值中转换用户输入的密码,通过password_verify()函数比较这两个值,得到正确的结果。

关于php - 如何使用数据库中的哈希值使用password_verify(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32584355/

10-11 02:23
查看更多