0
我需要一些幫助。我真的不明白爲什麼這些都不是都回歸「真實」。我的id爲6的測試用戶具有「test」作爲密碼。當我創建他時,價值被存儲。password_verify從數據庫返回false,但是從站點返回true?
我知道這兩個散列值是不一樣的,但似乎每個人都能夠做到像這裏計算器:)
<?php
require_once 'includes/database.php';
require_once 'includes/connection.php';
$sql_1 = 'SELECT * FROM anew_users WHERE user_id = 6';
$result_1 = $conn->query($sql_1);
while($row = $result_1->fetch_assoc()) {
$password = $row["user_password"];
}
$submittedPassword = "test";
echo $password . "<br>";
echo $submittedPassword . "<br>";
$verify = password_verify($submittedPassword, $password);
echo var_dump($verify);
$password = hashPassword('test');
$submittedPassword = "test";
echo $password . "<br>";
echo $submittedPassword . "<br>";
$verify = password_verify($submittedPassword, $password);
echo var_dump($verify);
輸出是:
//OUTPUT
$2y$10$aAHYMEvpW2o9ZRsD0XN2XOpYz.dmuqj5v4UdAPIZX9Eo0SW0NjGRe
test
bool(false)
$2y$10$.srmofPee5SWV6nmOy0PAOIlzoJPT0SBnzNN0QkYZKlpk3LzgI7F.
test
bool(true)
我創建了這個代碼的密碼:
function hashPassword($string) {
$output = password_hash($string, PASSWORD_DEFAULT, ['cost' => 10]);
return $output;
}
$user_password = escape($_POST["user_password"]);
$user_passwordhashed = hashPassword($user_password);
在此先感謝。
與逃生功能
function escape($string) {
$string = trim($string);
$string = stripslashes($string);
$string = htmlspecialchars($string);
return $string;
}
我們可以看到你的「逃生」功能嗎? – Federkun
我更新了我的帖子:) –
你確定用戶的ID爲6的密碼真的是「測試」嗎?你可以嘗試用新密碼更新該值嗎? – Federkun