热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

password_verify无法使用Bcrypt验证password_hash-password_verifycan'tverifypassword_hashwithBcrypt

Iamhavingsomeproblemsgettingpassword_verifytoconfirmmyhashedpassword.Thisismylogin:我

I am having some problems getting password_verify to confirm my hashed password. This is my login:

我在获取password_verify以确认我的哈希密码时遇到了一些问题。这是我的登录信息:

if (isset($_POST["login-button-front"]))
{
    // IF VALUE IS GIVEN
    if (isset($_POST["user-password"]) && ($_POST["user-email"])){
        $user_email = $_POST["user-email"];

        // QUERY DATABASE TO VERIFY LOGIN INFORMATION
        $query_password = $db->prepare("SELECT password, user_session FROM login WHERE email = :user_email");
        $query_password->execute(array(':user_email' => $user_email));
        $password_row = $query_password->fetchAll();

        // CHECK PASSWORD
        $password = $_POST["user-password"];
        $password_hash = $password_row[0]["password"];

        if(password_verify($password, $password_hash)){
            $_SESSION['user'] = $password_row['user_session'];
            require 'members.php';
        }
        // RESPOND IF WRONG INFORMATION GIVEN
        else{
            $login_wrOng= "The username and/or password you entered is incorrect. Please try again.";
            require 'front_page.php';
        }
    }
    // RESPOND IF NO INFORMATION GIVEN
    else{
        $login_wrOng= "You must enter a valid username and password to login. Need an account? Register below.";
        require 'front_page.php';
    }
}

And this is my registration:

这是我的注册:

$password = password_hash($_POST['password1'], PASSWORD_DEFAULT);

1 个解决方案

#1


I looked over all my details, removed single and double quotes. Aswell as made sure there was no fetching errors. This was my working code:

我查看了所有细节,删除了单引号和双引号。还要确保没有抓取错误。这是我的工作代码:

if (isset($_POST["login-button-front"]))
{
    // IF VALUE IS GIVEN
    if (isset($_POST["user-password"]) && ($_POST["user-email"])){
        $user_email = $_POST["user-email"];

        // QUERY DATABASE TO VERIFY LOGIN INFORMATION
        $query_password = $db->prepare("SELECT password, user_session FROM login WHERE email = :user_email");
        $query_password->execute(array(':user_email' => $user_email));
        $password_row = $query_password->fetchAll();

        // CHECK PASSWORD
        $password = $_POST["user-password"];
        $password_hash = $password_row[0]["password"];

        if(password_verify($password, $password_hash)){
            $_SESSION['user'] = $password_row[0]['user_session'];
            require 'members.php';
        }
        // RESPOND IF WRONG INFORMATION GIVEN
        else{
            $login_wrOng= "The username and/or password you entered is incorrect. Please try again.";
            require 'front_page.php';
        }
    }
    // RESPOND IF NO INFORMATION GIVEN
    else{
        $login_wrOng= "You must enter a valid username and password to login. Need an account? Register below.";
        require 'front_page.php';
    }
}

I ended up hashing using this:

我最后使用这个哈希:

$password_optiOns= ['cost' => 11,'salt' => mcrypt_create_iv(22,MCRYPT_DEV_URANDOM),];
$password = password_hash($_POST['password1'], PASSWORD_BCRYPT, $password_options);

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
author-avatar
歼鸡队队长_512
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有