CakePHP не хэширует пароли одинаковые - PullRequest
2 голосов
/ 06 января 2012

Я пытаюсь написать функцию сброса пароля для моего сайта в 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);

1 Ответ

5 голосов
/ 06 января 2012

Проблема в том, что если у вас есть поля 'username' и 'password' (в CakePHP 1.3 или более ранней версии), поле с именем "password" автоматически хешируется. Поэтому, когда вы делаете это вручную, вы фактически хешируете это дважды.

Вы можете либо переименовать его в что-то еще, например «пароль1», «mypass», «туалетная бумага» ... и т. Д., Что помешает автоматическому хешированию, либо удалить дополнительный хэш.

...