尝试通过POST用户输入验证数据库中的哈希密码。经过一些简短的研究后,似乎问题可能与无法将mysqli_query转换为字符串有关,虽然我不知道如何正确地做到这一点,因此我从另一个SO问题中添加了fetch_object()等。我还充分考虑了为varchar(255)设置列的has的长度。感谢任何帮助或指导,谢谢。
<?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.';
}
?>
答案 0 :(得分:1)
首先从数据库中获取密码哈希,然后在哈希值中转换用户输入密码。通过函数password_verify()比较这两个值,然后就可以得到正确的结果。
答案 1 :(得分:0)
hash.each_pair{|key, value| hash.[]= key, *value}