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

sha1(md5(‘SeCrEt’ . $password . ‘KeY’)).

Как с этим жить?

CakePHP хранит пароли следующим образом: поле пароля в БД = самый стойкий из доступных хэшей(открытый пароль + секретная соль)

Но на наш случай у компонента Auth припасено свойство authenticate (см. http://api.cakephp.org/class/auth-component) — ссылка на объект, который реализует функцию hashPassword.

И, собственно говоря, пример:

в файле app_controller.php помещаем класс для нашей хэш функции

class MyHash {
    public function hashPasswords($data) {
        if (is_array($data) && isset($data[‘User’])) {
            if (isset($data[‘User’][‘username’]) && isset($data[‘User’][‘password’])) {
                $data[‘User’][‘password’] = sha1( md5 (‘SeCrEt’ . $data[‘User’][‘password’] . ‘KeY’) );
            }
        }
        return $data;
    }
}

а в функции AppController::beforeFilter пишем строчку

$this->Auth->authenticate = new MyHash();

Готово!