我已经在我的注册脚本中对密码进行了加密,它们存储在数据库中,我必须使用它们来登录,所以我想使用未加密的密码来登录。我读过这里的一些帖子,但没有什么对我有帮助。如何将其添加到我的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);
这是我的season 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");
}
发布于 2015-12-15 08:47:24
array hash_algos(void)
echo hash('sha384', 'Message to be hashed'.'salt');
这里有一个指向参考http://php.net/manual/en/function.hash.php的链接
发布于 2014-07-16 18:17:37
您无法登录,因为您在登录时没有获得正确的solt文本。有两个选项,第一个是定义静态盐,第二个是如果你想创建动态盐,那么你必须将盐存储在某个地方(意味着在数据库中),并与用户关联。然后将user solt+password_hash字符串连接在一起,在数据库表中使用username触发查询。
发布于 2019-08-09 03:11:40
我认为@Flo254将$salt
链接到$password1
,并将它们存储到$hashed
变量中。使用$salt
将$hashed
变量放入INSERT
查询中。
https://stackoverflow.com/questions/20764031
复制相似问题