首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数据库哈希登录与db的比较

PHP数据库哈希登录与db的比较
EN

Stack Overflow用户
提问于 2017-06-17 19:30:31
回答 1查看 43关注 0票数 0

我试图建立一个登录功能,但没有注册系统。这是一个问题,因为我不知道如何使mysql和php之间的散列兼容。

我的PHP代码:

代码语言:javascript
复制
    if (password_verify($upass, 'sha256') && $count == 1){
        $_SESSION['userSession'] = $row['uid'];
        header("Location:profilepage.php");
    }
    else {
     //SPLOSIONS!!
    }

$upass表示表单输入上的POST,用户在其中输入给定的密码。

我试图在MySQL中对密码进行散列

代码语言:javascript
复制
 UPDATE users SET `userpassword` = SHA2(`userpassword`, 256)

userpassword与我的数据库中的userpassword列相匹配,我用SHA2对其进行了散列处理。

这里的问题是,我在PHP上的password_verify代码似乎与我在MySQL上更新的散列密码不兼容。结果,我遇到了我的else命令,而不是我想要的代码。

想知道如何使我的MySQL密码列与我的PHP兼容,反之亦然,或者是否有一种更实用的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-17 19:47:02

解决了!

添加了以下代码:

代码语言:javascript
复制
    $hashslingingslasher = password_hash($upass, PASSWORD_DEFAULT);

然后通过以下方式调用:

代码语言:javascript
复制
    if (password_verify($upass, $hashslingingslasher) && $count == 1){
        $_SESSION['userSession'] = $row['uid'];
        header("Location:userpage.php");
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44608626

复制
相关文章

相似问题

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