CakePHP Sha1 сохранение пароля в MySQL - PullRequest
0 голосов
/ 22 сентября 2011

Я забыл функцию пароля в приложении CakePHP. Функция для этого будет запрашивать адрес электронной почты, находить этого пользователя, генерировать новый пароль, преобразовывать его в sha1 и сохранять его в базе данных, отправляя содержимое по электронной почте пользователю.

В любом случае у меня возникают проблемы, сгенерированный пароль sha1 отличается от того, который был сохранен.

Я вызвал информацию на экран, чтобы показать, что происходит:

ПАРОЛЬ ТЕМП. - lHQcVp4 (ИЗ ФУНКЦИИ) Blockquote

ПАРОЛЬ SHA1 - 0ee4ae757733f458b9e395a8457c2ef307af99f0 (ОТ sha1 ($ user ['User'] ['tmp_password']);

Пароль доступа ПАРОЛЬ - 93df9bd251620d0634235c22f4ab6fe9ad5421f4 (ОТ: $ this-> Auth-> пароль ($ user ['User'] ['tmp_password']);)

Запись в БД после сохранения ПАРОЛЬ - 13ef648db45cc62b593c3943646806af06846016 (FROM $ this-> User-> field ('password');)

Я сохраняю данные следующим образом: $ this-> User-> save ($ user, false)

Почему это происходит по-разному все 3 раза? Я не могу решить это. Очень странно.

Thankyou

1 Ответ

1 голос
/ 22 сентября 2011
sha1($user['User']['tmp_password'] 

Это просто хеширует пароль и выводит текст

$this->Auth->password($user['User']['tmp_password']);

Это хеширует пароль с солью cakephp , определенной в core.phpВот почему вы видите разницу

Если вы просто установите значение пароля в $ user ['User'] ['password'] и вызовете для него функцию save (), Auth может снова хэшировать пароль, так как онне знает, что ты уже хэшировал этоВы пытались просто установить пароль в $ user ['User'] ['password'] и вызвать для него функцию save ()?Позвольте Auth обработать хеширование для вас.

...