繁体   English   中英

如何使用password_hash存储bcrypt salt?

[英]How to store bcrypt salt with password_hash?

我正在使用password_compat.php来使用password_hash和password_verify函数。 我正在使用河豚鱼。 password_verify似乎不起作用,因为它与数据库中存储的哈希不匹配。 我是否必须使用password_verify指定算法或盐?

注册脚本:

            $hash = password_hash($pass, PASSWORD_BCRYPT);
            $qry = "INSERT INTO users (email, fname, lname, gender, p4s5) VALUES ('$email', '$fname', '$lname', '$gender', '$hash')";
            $result = mysqli_query($dblink, $qry) or die(mysqli_error($dblink));

登录脚本:

        $qry = "SELECT * FROM users WHERE email='$email' LIMIT 1";
        $result = mysqli_query($dblink, $qry);

        if (!mysqli_num_rows($result) > 0) {
            // email not in database, error
            $loginErrors .= "<li>Username or password wrong</li>";
        } else {
            $row = mysqli_fetch_assoc($result);

            // verify password;
            $hash = $row["p4s5"];

            if (password_verify($pass, $hash)) {
                // not same, error
                $loginErrors .= "<li>Username or password wrong</li>";
            } else {
                // login user
                $id = $row["id"];
                $fname = $row["fname"];
                $lname = $row["lname"];

                login($id, $email, $fname, $lname);
                header("Location: ".$_SESSION["last-page"]);
            }
        }

表结构:

创建表usersid int(11)NOT NULL AUT ...

检查数据库中的密码长度,这可能是您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM