我正在尝试在CakePHP中为我的网站编写密码重置功能。我已尝试使用$auth->hashPasswords
,$auth->password
,甚至Security::hash
,但没有任何内容正确地进行散列。我尝试使用foobar登录,注意用于尝试登录的哈希:cfb9fabf02497f9090cbba6b03da4764212cea407
,
但重置使foobar变为5f4bb4b693725cea09cc7fc20603273f665534d8
。
我做错了什么?
我的代码:
$this->data['Player']['password'] = $this->Auth->password($this->data['Player']['password']);
$this->Player->save($this->data);
答案 0 :(得分:5)
问题是,如果你有'用户名'和'密码'字段(在CakePHP 1.3或之前),名为“password”的字段会自动进行哈希处理。因此,当您手动执行此操作时,实际上是对它进行两次哈希处理。
您可以将其重命名为“password1”,“mypass”,“toiletpaper”等其他内容,以防止其被自动哈希,或者您可以删除其他哈希值。