rosko, прошу прощения за не точность…в том файле хранятся не сессии, а validationkey…для генерирования HMAC(Как я понял вот отсюда http://www.yiiframew…ationKey-detail )
Предполагаю, что его нужно установить в ручную…в конфиге…как я пока ещё не понял…докопаю…напишу сюда
Осмелюсь предположить, что это (в моём понимании) надстройка (например над md5)…которая служит лишь для усиления хэш алгоритмов…иными словами…"более крутой хэш" =)
При попытке закриптовать строку таким способом:
echo CSecurityManager::encrypt('q1w2e3');
Получил интересное сообщение…
Controller does not have a method named "getEncryptionKey".
Разбираюсь…как накопаю что-нибудь отпишусь…достаточно интересный класс =)
Исходя из доков в файле CSecurityManager.php вызывать кодирование/декодирование надо так
Yii::app()->getSecurityManager()->encrypt()
Ибо getEncryptionKey есть функция самого класса CSecurityManager, а не контроллера. И ключ шифрования устанавливается в конфиге приложения, если он не указан - генерится случайным образом.
Класс используется для шифрования данных внутри системы, как пример - при валидации кукисов. Для шифрации используется mcrypt модуль пхп.
Странно, но при каждом обновлении страницы зашифрованная строка получается постоянно разная, хотя ключь и сама строка не меняется…либо я что-то не докурил, либо так и задумано(в чём я очень сильно сомневаюсь)
HMAC - алгоритм, гарантирующий, что закодированные данные не были изменены 3 лицом. Используется в YII при включенном режиме проверки куков. Его НЕЛЬЗЯ использовать для хранения паролей, т.к. в итоговую закодированную строку добавляются исходные кодируемые данные.
Метод encrypt() использует 3DES алгоритм шифрования, который при кодировании использует encryptionKey и создаваемый случайным образом вектор инициализации. Засчет случайных значений этого вектора получаются случайные шифрованные данные.