我有存儲密碼這樣的數據庫字段:如何在文本框與密碼數據庫行匹配字符串
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);
但我所做的是,我已經更新了密碼字段,以便該字段不顯示passwrod作爲一個字符串,而是一串字符,這樣他們的密碼是安全的。下面是更新我做:
UPDATE Teacher
SET TeacherPassword = Password(TeacherPassword);
這將導致密碼字段看起來像現在這樣:
TeacherPassword
*6FF132E0666AC8462BC
*FCF5F8CE105D0748315
*FD4FA4B60EEF1E24050
所以我的問題是什麼,在我的mysqli碼,我如何得到字符串密碼輸入文本框j.lu01
以匹配其在數據庫行中的散列密碼*6FF132E0666AC8462BC
?
因此,如果我在表中添加一個鹽列,讓我說我有3行,我在「鹽」列下填充3行?我是否輸入任何隨機字符串?你能舉個例子嗎? – user1394925 2012-08-08 02:05:12
鹽需要隨機生成,我更新了我的答案請看看 – 2012-08-08 07:04:19