Codeigniter在bcrpt哈希密码上更改了md5

时间:2016-08-17 12:27:59

标签: php codeigniter md5 bcrypt

如何更改bcrypt上的CodeIgniter md5?我想要哈希密码

型号代码http://wklej.org/id/2784670/

public function can_log_in($login, $password){

    // var_dump($login);
    // print_r($password);
    // bcrypt
    //  die;
    // print_r(md5($password));

    $result = $this->db
              ->from('users')
              ->where('email', $login)
              ->where('password', md5($password))
              ->get();

    // print_r($result);die;

    $this->db->where('email', $login);
    $this->db->where('password', md5($password));  How change md5 on bcrypt?>???!

    $query = $this->db->get('users');


    if ($result->num_rows()== 1){
        return true;
    } else {
        return false;
    }

}

2 个答案:

答案 0 :(得分:1)

你可以通过它改变为bcrpt哈希passowrd

$这 - > hashpassword($这 - >输入 - >柱('密码'))

答案 1 :(得分:1)

  

我会使用php password_hash()

在您的数据库密码列tbl <- table(data1$Group) subset(data1, Group %in% names(tbl)[tbl>2])

varchar 255

以上示例将输出类似于:

的内容
public function createUser() {
    $options = [
       'cost' => 12,
    ];

    $new_password = password_hash($this->input->post('password'), PASSWORD_BCRYPT, $options);

    $data = array(
       'username' => $this->input->post('username'),
       'password' => $new_password
    );

    $this->db->set($data);
    $this->db->insert('user');
}
  

和php password_verify()

然后你需要做的是

模型Guide

文件名:Login_model.php

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Controller Guide

文件名:Login.php

<?php

class Login_model extends CI_Model {

    public function getUser() {
        if ($this->verify()) {
            $this->db->select('*');
            $this->db->from('user');
            $this->db->where('username', $this->input->post('username'));

            if ($query->num_rows() > 0) {
                return $query->row();
            } else {
                return false;
            }

        }
    }

    public function verify() {
        $hashed = $this->getHash();
        $password = $this->input->post('password');

        if (password_verify($password, $hashed)) {
            return true;
        } else {
            return false;
        }
    }

    public function getHash() {
        $this->db->select('*');
        $this->db->from('user');
        $this->db->where('username', $this->input->post('username'));

        if ($query->num_rows() > 0) {
            return $query->row()->password;
        } else {
            return false;
        }
    }
}

注意:不要在config.php中根据需要在CI3版本中设置base_url