首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于登录密码的PHP salt和散列SHA256

用于登录密码的PHP salt和散列SHA256
EN

Stack Overflow用户
提问于 2013-12-25 00:34:38
回答 4查看 116.5K关注 0票数 24

我已经在我的注册脚本中对密码进行了加密,它们存储在数据库中,我必须使用它们来登录,所以我想使用未加密的密码来登录。我读过这里的一些帖子,但没有什么对我有帮助。如何将其添加到我的login.php?盐也存储在数据库中。

这是我用于加密的register.php脚本

代码语言:javascript
复制
$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

代码语言:javascript
复制
//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");
}
EN

回答 4

Stack Overflow用户

发布于 2015-12-15 08:47:24

代码语言:javascript
复制
array hash_algos(void)

echo hash('sha384', 'Message to be hashed'.'salt');

这里有一个指向参考http://php.net/manual/en/function.hash.php的链接

票数 1
EN

Stack Overflow用户

发布于 2014-07-16 18:17:37

您无法登录,因为您在登录时没有获得正确的solt文本。有两个选项,第一个是定义静态盐,第二个是如果你想创建动态盐,那么你必须将盐存储在某个地方(意味着在数据库中),并与用户关联。然后将user solt+password_hash字符串连接在一起,在数据库表中使用username触发查询。

票数 0
EN

Stack Overflow用户

发布于 2019-08-09 03:11:40

我认为@Flo254将$salt链接到$password1,并将它们存储到$hashed变量中。使用$salt$hashed变量放入INSERT查询中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20764031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档