首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Salt密码不匹配

Salt密码不匹配
EN

Stack Overflow用户
提问于 2014-12-09 06:10:20
回答 1查看 152关注 0票数 0

我的注册页面上的代码:

代码语言:javascript
复制
 $p_salt = rand_string(20);
 $site_salt="subinsblogsalt"; /*Common Salt used for password storing on site.*/
 $salted_hash = hash('sha256', $password.$site_salt.$p_salt);

然后,我将盐连同加盐的密码一起插入到数据库中,但当我在登录页面上执行此操作时:

代码语言:javascript
复制
if(isset($_POST) && $email!='' && $password!=''){
 $sql=$dbh->prepare("SELECT id,password,psalt FROM user WHERE email='".$email."'");
 $sql->execute(array($email));
 while($r=$sql->fetch()){
  $p=$r['password'];
  $p_salt=$r['psalt'];
  $id=$r['id'];
 }
 $site_salt="subinsblogsalt";/*Common Salt used for password storing on site. You can't change it. If you want to change it, change it when you register a user.*/
 $salted_hash = hash('sha256', $password.$site_salt.$p_salt);

但它们根本不匹配,我回显了加了盐的散列,将其与数据库中的散列进行了比较,但它们是不同的。

EN

回答 1

Stack Overflow用户

发布于 2014-12-09 07:45:18

您将使用以下命令创建和存储密码:

代码语言:javascript
复制
$salted_hash = hash('sha256', $password.$site_salt.$p_salt);

但是,当您从表中恢复密码时,您是在加密以比较已经加密的密码。

在比较密码时,请使用$p_salt

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

https://stackoverflow.com/questions/27367941

复制
相关文章

相似问题

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