mysql - phpass 将输入密码与存储的密码进行匹配

标签 mysql codeigniter phpass

我在插入时使用 phpass 对密码进行哈希处理,如下所示

  public function addAdmin(){
        $this->load->library('phpass');
        $this->load->database();
        $psw = 'admin1234';
        $hashed = $this->phpass->hash($psw);
        $now = date("Y-m-d H:i:s");

        $data = array(
   'userid' => 'admin_user' ,
   'userfname' => 'Admin' ,
   'userlname' => 'Admin',
   'userdname' => 'Admin' ,
   'useraddress' => '20/72,Vidarshana Mawatha, Galawilawatta, Homagama' ,
   'usercountry' => 'Sri Lanka',
   'usercontactno' => '0112-892199' ,
   'userlastlog' => $now ,
   'userpassword' => $hashed ,
   'userpermission' => '1',
   'useremail' => 'dilukshanmahendra@gmail.com'
);

$this->db->insert('ecom-user', $data); 

        echo "Successfully Added!";

    }

但是,当我在登录时输入相同的用户 ID 和密码(正确的用户 ID 和密码)并通过将其与存储的用户名和密码进行匹配进行验证时,它会在我预期为“1”的情况下返回“0”

public function validateLogin($userid,$userpass){    


    $this->load->library('phpass');
    $this->load->database();
    $hashed = $this->phpass->hash($userpass);

    $this->db->select('*');
    $this->db->from('ecom-user');
    $this->db->where('userid', $userid);
    $this->db->where('userpassword', $hashed);

    $result = $this->db->get();

    echo $this->db->last_query(); 
    echo '<br/>'.$result->num_rows();





    }

请有人帮我解决这个问题

最佳答案

最好看看here 同时,修剪您用于登录和注册新用户的所有输入字段!

关于mysql - phpass 将输入密码与存储的密码进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450567/

相关文章:

php - Codeigniter 和 Paypal : How it works

CodeIgniter、CI-Merchant 和 Paypal 沙盒

php - HTML 表单在转到另一个网页时使用 PHP 将数据插入到 SQL 中

php - mysqli_query() 没有产生预期的结果

php - 如何在codeigniter中使用where子句连接两个表?

php - 检查open_basedir限制是否生效

mysql - 在 mysql 中复制 wordpress 密码哈希

mysql - MySQL 服务器和 MySQL 客户端有什么区别

php - 无法在 Centos 上安装 php-mysqli 扩展