首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的未散列密码

问PHP中的未散列密码
EN

Stack Overflow用户
提问于 2022-08-04 15:22:59
回答 1查看 49关注 0票数 -2

我如何将变量$passHash从寄存器函数放到登录函数,因为我尝试使用password_verify()方法,它需要我的哈希

我尝试从数据库中获得我的hashe密码,并将其放到password_verify()中,但它不起作用。

代码语言:javascript
复制
public function register($uname, $email, $pass) {  
 
    
    $passHash = password_hash($pass, PASSWORD_DEFAULT);
    $sqlQuery="INSERT INTO UserData (userName, userEmail, userPassword) VALUES (:userName,:userEmail,:userPassword)";
    $stmt = $this->db->prepare($sqlQuery);
    $stmt->bindparam(':userName', $uname);
        $stmt->bindparam(':userEmail', $email);
        $stmt->bindparam(':userPassword', $passHash);
    
    if($stmt->execute()) {
        return true;
    } else {
        return $stmt->error;
    }
}

public  function login($emailUser,$passUser){
    $sqlQuery= "SELECT * FROM UserData WHERE userEmail=? AND userPassword=? ";
    
    // $sqlQuery.Id;
    $stmt = $this->db->prepare($sqlQuery);
    $stmt->execute([$emailUser, $passUser]);
    $result = $stmt->fetch(PDO::FETCH_ASSOC); <-- NOT WORKING SO I try get hash variable from  register function 
    $checkPassword=password_verify($passUser,$result["userPassword"]);

    if($checkPassword==true){

        if($stmt->rowCount()==0){
            echo "err";
        }else{
    
            echo "success";
        }
    }else{

        echo 'bad pass';
    }


}
EN

回答 1

Stack Overflow用户

发布于 2022-08-04 15:33:14

运行成功登录尝试的步骤:

  1. 从登录客户端收集用户名/标识符。

$emailUser =$POST‘$emailUser’;$passUser =

  1. 只将其发送给MySQL,以仅检索该行,包括哈希密码和行标识符。

从UserId,userPassword从UserData选择userEmail=?

使用

  1. 检查数据库中的散列密码与用户给定的值匹配

if(password_verify($passUser,$result‘’userPassword)){.

  1. 允许访问.

  • NEVER将密码发送给MySQL,由worthless.
  • Use $stmt->fetchAll();检索数据行
  • --您应该选择实际要使用的列,执行SELECT *是错误的做法。
  • --您的$stmt->rowCount()==0子句将始终失败,因为它是在密码经过测试和通过之后,所以删除整个部分。H 231H 132告诉人们他们的密码失败了,因为如果有人在这个系统上有电子邮件,这是错误的。相反,请说明“您的电子邮件或密码是不正确的”,因此如果某个人的电子邮件在系统上,第三方就不能那么容易地建立它。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73238462

复制
相关文章

相似问题

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