亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP密碼_驗證codeigniter3

PHP密碼_驗證codeigniter3

PHP
慕姐8265434 2023-07-01 15:18:31
我對password_verify 沒有什么問題。我使用 codeigniter 3 進行學習。我有用戶模型<?phpclass User_model extends CI_Model{    public function __construct()    {        parent::__construct();        $this->load->database();    }    public function createUser($args): int    {        $query = $this->db->insert('user', $args);        return $this->db->affected_rows();            }    public function getUser(string $email): array    {        $query = $this->db->get_where('user',array('email'=> $email));        return $query->row_array();    }}用戶控制器<?phpclass UserController extends CI_Controller{    public function __construct()    {        parent::__construct();        $this->load->model('user_model');        $this->load->helper('url_helper');    }    public function profile()    {        $data['user'] = $this->user_model->getUser($_POST['email']);        $hash = $data['user']['password'];        if(password_verify($_POST['password'],$hash)){            echo "success";        }else{            echo "failed";        }        $this->load->view('templates/header');        $this->load->view('pages/profileUser',$data);            }如果我在控制器中使用靜態密碼,它可以工作,如果我通過數據庫函數password_verify 獲取哈希密碼,則它不起作用。謝謝你的支持,
查看完整描述

1 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

正如 php.net所解釋的?password_verify()那樣,驗證通過password_hash().

如果您使用 sha256 哈希,您可以更好地對用戶輸入進行哈希處理并與數據庫查詢的密碼進行比較,如下所示:

$password = $this->input->post('password');

if(hash('sha256', $password) == $hash) {

?echo 'success';

} else {

?echo 'failed';

}

我認為更好的方法是在查詢中動態檢查密碼,如下所示:


$user_query = $this->db->get_where('users', array('email' => $email, 'password' => hash('sha256', $password));

if($user_query->num_rows() == 0) {

?print 'failed';

} else {

?print 'success';

?$user = $user_query->row_array();

?...

}

順便說一句:最好使用 CodeIgniters $this->input->post('password') 因為它會為您進行安全過濾。


查看完整回答
反對 回復 2023-07-01
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號