Назад | Перейти на главную страницу

SHA512-CRYPT от Horde и Dovecot: невозможно подключиться с помощью пользовательского запроса SQL

после успешного переключения механизма аутентификации в dovecot и roundcube с MD5 на SHA512-CRYPT я изо всех сил пытаюсь заставить Horde аутентифицироваться с использованием пользовательских SQL-запросов.

Настройка $conf['auth']['params']['encryption'] = 'crypt-sha512'; не очень помогает.

Каким-то образом хеш, возвращаемый \P заполнитель кажется усеченным: это много слишком короткий, равный выходу crypt-sha256кроме того, это даже не выглядит правильным. Излишне говорить, что он не соответствует хешу в базе данных.

Поиск в Google на самом деле не привел к ответу, поэтому я полагаюсь на ваши знания. Этот парень похоже, имеет хотя бы немного похожую настройку и получает разумные хеши.

Это скорее проблема php или орда? Или это только я?

Аааа. Хорошо. Нашел свою ошибку. Для определения пароля мне также нужно изменить запрос, так как мне нужно удалить ведущий {SHA512-CRYPT}:

$conf['auth']['params']['query_getpw'] = 'SELECT SUBSTRING_INDEX(password,\'}\',-1) FROM virtual_users WHERE email = \L';

затем

$conf['auth']['params']['query_auth'] = 'SELECT * FROM virtual_users WHERE email = \L AND password = concat(\'{SHA512-CRYPT}\',\P)';

работает :)

$conf['auth']['params']['query_auth'] = 'SELECT * FROM virtual_users WHERE email = \L AND password = concat(\'{SHA512-CRYPT}\',ENCRYPT(\P, SUBSTRING_INDEX(`password`,\'}\',-1)))';

и

$conf['auth']['params']['encryption'] = 'plain';

похоже работает для меня. Но я бы предпочел иметь SQL-запрос без пароля в виде обычного текста. Разве это не работает так, как задумано в первом вопросе?