我有一个存储密码的数据库字段,如下所示:
TeacherPassword
j.lu01
pesci02
cricket01
现在我有一个文本框,用户在其中输入密码,如果它与其中一行匹配,则导航到下一页。下面是它检查密码的代码。
$teacherpassword = (isset($_POST['teacherpassword'])) ? $_POST['teacherpassword'] : '';
if (isset($_POST['submit'])) {
// don't use $mysqli->prepare here
$query = "SELECT * FROM Teacher WHERE TeacherPassword = ? LIMIT 1";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("s",$teacherpassword);
// execute query
$stmt->execute();
// get result and assign variables (prefix with db)
$stmt->bind_result($dbTeacherPassword);
但是我所做的是我已经更新了密码字段,以便该字段不会将密码显示为字符串,而是显示为一串字符,以便他们的密码是安全的。以下是我所做的更新:
UPDATE Teacher
SET TeacherPassword = Password(TeacherPassword);
这导致密码字段现在看起来像这样:
TeacherPassword
*6FF132E0666AC8462BC
*FCF5F8CE105D0748315
*FD4FA4B60EEF1E24050
所以我的问题是,在我的 MYsqli 代码中,如何让在文本框中输入的字符串密码j.lu01
与其在数据库行中的哈希密码相匹配*6FF132E0666AC8462BC
?