我是新手,还在学习,根据建议我用bcrypt替换了我的md5加密密码,但是password_verify由于某种原因没有返回true。
来自控制器:
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
在模型中:
$old_pass = $this->input->post('old_password');
有人可以告诉我如何解决它吗?
干杯, 巴亚
编辑:
我做的第一件事就是使用新加密更新数据库上的密码,方法是通过edit_member函数编辑用户(这样我就可以显示如何在数据库上更新密码):
function edit_member($user_info, $old_pass)
{
$id_user = $this->session->userdata('id_user');
$user_pass = $this->db->query("SELECT password FROM membros WHERE id_user='" . $id_user . "'")->result();
if (password_verify($old_pass, $user_pass[0]->password)) {
$this->db->where('id_user', $id_user);
$this->db->update('membros', $user_info);
redirect('/cpanel');
} else {
//redirect('/edit_account/edit');
print_r("A password não coincide");
echo anchor('/cpanel', 'Voltar');
}
/*print_r($user_pass[0]->password);
print_r($old_pass);*/
}
答案 0 :(得分:1)
如果password_verify
没有返回true,那是因为:
我的猜测是#1,在这种情况下,您需要更新登录逻辑以执行以下操作:
我的许多遗留系统都有点像这样工作,随着用户密码的更新而更新(大约6个月后,我倾向于向他们发送提醒,更改密码并禁用旧的MD5密码)。
答案 1 :(得分:0)
显然这是因为密码已经用
更改为数据库password_hash($ password,PASSWORD_BCRYPT)。“\ n”
(我从其他人的帖子中复制过)
一旦我删除了。“\ n”位就开始工作了(我不知道这是做什么的,就像我说的那样,我有点抄袭别人 - .-)
感谢所有看过这个问题的人,抱歉浪费你的时间-.-
干杯, 巴亚