我已经在我的注册脚本中进行了密码加密并将其存储在数据库中,我必须使用它们来登录,所以我想要使用未加密的密码进行登录。我阅读了这里的一些线程,但没有任何帮助我。我该如何将其添加到我的login.php中?盐值也存储在数据库中。
这是我的register.php脚本用于加密
$hash = hash('sha256', $password1);
function createSalt()
{
$text = md5(uniqid(rand(), TRUE));
return substr($text, 0, 3);
}
$salt = createSalt();
$password = hash('sha256', $salt . $hash);
这是我的带有季节功能的登录页面login.php
//Create query
$qry="SELECT * FROM member WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);
//Check whether the query was successful or not
if($result) {
if(mysql_num_rows($result) > 0) {
//Login Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_FIRST_NAME'] = $member['username'];
$_SESSION['SESS_LAST_NAME'] = $member['password'];
session_write_close();
header("location: profile.php");
exit();
}
else {
//Login failed
//error message
}
else {
die("Query failed");
}
mysql
函数,而是使用mysqli
或pdo
。 - andreaspassword_hash
和password_verify
,而不是使用自己的算法(请参见 http://www.php.net/manual/en/function.password-hash.php)。 - andreas