我在注册时使用以下方法在数据库中保存密码。
'reg_password'=>password_hash($this->input->post('password'), PASSWORD_DEFAULT, ['cost' => 15]),
我在登录时使用以下方法。
'Password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT, ['cost' => 15])
每次我获得不同的哈希密码如何解决此问题?抱歉我的英语不好。
答案 0 :(得分:2)
password_hash()
有助于首次在sign_up中转换用户的输入密码,然后将此信息(hash + salt)返回到适合与用户存储的单个字符串中记录在数据库中。它不能用于检查用户输入是否与数据库中已经散列的密码匹配。为此,您需要使用password_verify()
方法来检查密码是否存在。例如
'Password' => password_verify($this->input->post('password'), $stored_password);