大家好。我有一个关于 BCRYPT 本身的问题,以及是否有人可以解决另一个问题。
我在这里想在现有的 . 这个数据库使用 bcrypt。我注意到当我输入密码时,我的哈希是随机的,与数据库中的哈希不匹配。以及如何确保输入密码时哈希不会改变
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once "../includes/functions.php";
require_once "../includes/discord.php";
require_once "../config.php";
require_once "../root/dbconnect.php";
$auth_url = url($client_id, $redirect_url, $scopes);
$did = $_SESSION['user_id'];
$mail = $_SESSION['email'];
$name = $_POST['nickname'];
$cardname = $_POST['cardname'];
$pass = $_POST['password'];
$passwdh = password_hash($pass, PASSWORD_BCRYPT, $options);
$check = mysqli_query($server, "SELECT * FROM `AUTH` WHERE `NICKNAME` = '$name' AND `HASH` = '$passwdh'");
// SELECT * FROM `AUTH` WHERE `NICKNAME` = 'Tok1shu' AND `HASH` = ''
while(true) {
// Generate card number
$random = rand(1000,9999);
// Check
$result = mysqli_query($connect, "SELECT * FROM `users` WHERE `cardid` = '$random'");
// Если число есть в таблице - выход из повторов
if (mysqli_num_rows($result) == 0) break;
}
if (mysqli_num_rows($check) > 0) {
$reg_result = mysqli_query($connect, "INSERT INTO `users`(`did`, `email`, `name`, `cardid`, `cardname`) VALUES ('$did','$mail','$name','$random','$cardname'");
echo("Успешный вход");
}else{
echo("Неверные данные входа");
}
?>
第 23 行是$pass = $_POST['password'];
这里的某些内容是否使用 2 个数据库。如果您能提供帮助,我将不胜感激。请不要用棍子打我,这是我第一次使用 Bcrypt
你解决的问题不正确,要检查密码的正确性,需要使用password_verify函数