gpt4 book ai didi

php - 验证密码返回 0 行,而预期返回 1 行

转载 作者:行者123 更新时间:2023-11-29 08:43:26 30 4
gpt4 key购买 nike

我目前正在执行验证过程来检查用户的旧密码,但问题是我无法理解为什么我的查询返回零行,而预期它有 1 行。另一件事是,即使我不将密码文本转换为 md5,哈希密码仍然得到正确的答案,但我不知道为什么会发生这种情况。到目前为止,这是我的代码:

public function validate_oldpassword($username,$password)
{
$this->db->select('user_salt');
$query = $this->db->get_where('login',array('username' => $username));

if ($query->num_rows() == 1)
{
foreach ($query->result() as $row)
{
$password2 = hash("sha256",$password.$row->user_salt);
$this->db->flush_cache();
$query = $this->db->get_where('login', array('username' => $username, 'password' => $password2));

//return $this->db->last_query();
return $query->num_rows();

if($query->num_rows()==1){
return "YEHEY";
}else{
return "NO";
}

}
}

}

我还检查了查询,它返回了正确的查询:

SELECT * FROM (`login`) WHERE `username` = 'kahel' AND `password` = 'f91d20d381426ea56e57da9ab23d0c568b8f934c3ff313e1bbf6c28a4fee758a'

我的密码是 test 盐是 XgvT7F~(CYr#*0E1^UI@xkqJ5GcAO8BHsotZpf+WQ!4&ja2y%NdelLmhPSnRw9)zDK63VMuib 存储的密码是 f91d20d381426ea56e57da9ab23d0c56 8b8f934c3ff313e1bbf6c28a4fee758a

最让我烦恼的是,在我的登录页面功能中,一切正常。这是我的登录代码功能:

public function get_login_credentials($username,$password)
{
$this->db->select('user_salt');
$query = $this->db->get_where('login',array('username' => $username));

if ($query->num_rows() == 1)
{
foreach ($query->result() as $row)
{
$password = hash("sha256",md5($password).$row->user_salt);
$query = $this->db->get_where('login', array('username' => $username, 'password' => $password));
return $query->num_rows();
}
}
}

我真的无法弄清楚为什么它返回零行。

最佳答案

在您设置的登录功能中:

$password = hash("sha256",md5($password).$row->user_salt);

并在 validate_oldpassword 中设置:

$password2 = hash("sha256",$password.$row->user_salt);

您没有对其进行 md5 哈希

关于php - 验证密码返回 0 行,而预期返回 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151494/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com