首页 > 解决方案 > Bcrypt密码在运行时更改?

问题描述

所以我不明白为什么在插入之前和插入之后我的 bcrypt 密码值不同。

这是我的代码..

        $datas['user_name'] = $data['name'];
        $pass = $data['name'];
        $pass = str_replace(' ', '', $pass);

        $datas['decrypt_pass'] = $pass.'@123';
        //var_dump($datas['decrypt_pass']); 

        $options = ['cost' => 12];
        $datas['password'] = password_hash($datas['decrypt_pass'], PASSWORD_BCRYPT, $options);
         // here i've different value of $datas['password'] which is matching
        // but as soon as I insert is just after this line, someother brcypt gets inserted
        $this->db->insert('users',$datas);

我确定我的值在插入之前和插入之后都发生了变化,为什么会发生这种情况,我该如何解决?

我试过这个..

$pass1=bin2hex($datas['decrypt_pass']);
echo $datas['password'] = password_hash($pass1, PASSWORD_BCRYPT, $options);

$hash = hex2bin('$2y$12$nv7MZpITG2QqTOC91rouBOdn3/WqI6uNUUyP4I6vsEpYh46LD7ZNW');

if (password_verify('bilalmalik@123', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

标签: phpcodeigniter

解决方案


推荐阅读