2013-12-09 3 views
1

В моем приложении CakePHP я пытаюсь зашифровать данные сохраненных пользователей, которые я успешно выполнил по большей части. Я могу получить общий шифрование/дешифрование, работая с beforeSave() и afterFind(), но у меня возникают проблемы при шифровании/расшифровке имен пользователей - проблема заключается в том, что AuthComponent просматривает базу данных для точного соответствия введенному имени пользователя. Я шифрую имя пользователя перед отправкой его в AuthComponent, но это не будет делать ничего, поскольку мне пришло в голову, что шифрование строки (с Security::rijndael не всегда будет давать тот же результат (как хэш-код).CakePHP Имя пользователя Шифрование/дешифрование

I ' ве ковыряться в AuthComponent в Lib папку, но я не решаются делать какие-либо изменения Так что я думаю, я остался с 2 вопроса:.

  1. можно ли зашифровать имена пользователей в базе данных и (Я почти уверен, что это да, так что ...)
  2. Как я могу это сделать? Поведение может быть? Простая модификация AuthComponent?

Спасибо!

ответ

0

Основываясь на том, что вы сказали, я не вижу причины играть с AuthComponent, я бы просто использовал the Security Utility.

Как вы уже сказали, если вы хотите сохранить хэш вместо обычного текста в базе данных, тогда вам нужно будет использовать обратный вызов beforeSave(), ваш хэш будет выполнен с использованием Security::hash().

Важно заметить, что HASH по определению не может быть расшифрован. Таким образом, если вы действительно хотите шифровать/расшифровать, тогда вам нужно будет использовать Security::cipher()

+0

Спасибо, но у меня уже есть шифрование и дешифрование. Я хочу, чтобы имена пользователей были восстановлены, поэтому я пошел с шифрованием вместо хэширования. Когда я добавляю нового пользователя, все шифруется отлично. Я не могу войти в систему, потому что Cake ищет * некоторую зашифрованную строку * в столбце Имя пользователя и отличается от исходного шифрования. – Jason

+0

Затем измените имя пользователя ПЕРЕД записью пользователя. Как? используя шифр(). –

+0

Извините, я не был ясно в своем оригинальном посте, я его обновил. Я использую 'Security :: rijndael', который не дает тот же результат с той же строкой. – Jason

Смежные вопросы