密码未在 codeigniter 中加密

Password is not encrypted in codeigniter

我的控制器文件中有这段代码:

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

            $encriptKey = 'super-secret-key';
            $encrypted_string = $this->encrypt->encode($password, $encriptKey);

               if ($this->account_model->insertUser($data,$encrypted_string))
             { 
                $this->session->set_flashdata('msg','successfully registered!');
}

我的模型文件中有这段代码:

function insertUser($data,$encrypted_string)
    {
          return $this->db->insert('user', $data,$encrypted_string);
    }

密码未加密。我已经初始化加密 class。戳这里!!

但是为什么要在数据数组中保存纯 POST 密码?我假设您想将加密密码插入数据库,然后尝试类似的操作:

$data = array(
                'username' => $this->input->post('txt_username'),
                'password'=>$this->encrypt->encode($password, $encriptKey);
 );

现在您可以插入$data,并且您有一个加密密码

您还没有将加密密码放入 $data 数组。

据我所知,db->insert 只接受 2 个参数,table 和 $data 数组

所以尝试将加密后的密码放入 $data 数组

$encriptKey = 'super-secret-key';

$data = array('username' => $this->input->post('txt_username'),
              'password' => $this->encrypt->encode($this->input->post('txt_password'), $encriptKey)
             );

if ($this->account_model->insertUser($data)) { 
    $this->session->set_flashdata('msg','successfully registered!');
}

function insertUser($data)
{
    return $this->db->insert('user', $data);
}