Как научить basic_db_auth понимать пароли, хэш которых начинается на $apr1$?

Добрый день.
Система debian 8, squid3
Решил перенести пользователей squid в mysql базу, и столкнулся с такой бедой:
Пароли генерировались htpasswd , и сейчас хэш некоторых паролей начинается на $apr1$
Логины и хэши я перенес в mysql базу. Но, пароли, хэш которых начинаются на $apr1$ - скриптом basic_db_auth(из стандартной поставки) не проходят проверку. С остальными проблем нет.
Так как скрипт написан на перле, то наверняка, есть возможность "побороть" данную проблему. Весь вопрос как?
Просто хотелось бы сделать переход максимально прозрачным для пользователей ...
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
@alex_kag Автор вопроса
То что это специальный формат, совмещенный с солью - это я нашел. Вся проблема в том, что perl я могу только более-менее (скорее менее) понять, но изменить - я не в состоянии....
Поэтому и интересуют, пути решения данной проблемы.

Вообщем, задача решена, почти в лоб.
Было сделано:
1. установлен модуль для perl Crypt::PasswdMD5;
Файл basic_db_auth изменен следующим образом:
добавлено:
use Crypt::PasswdMD5;

после строчки return 1 if $md5 && md5_hex($password) eq $key;
добавлено:
return 1 if $md5 && apache_md5_crypt($password, $key) eq $key;


Все работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
"$apr1$" + the result of an Apache-specific algorithm using an iterated (1,000 times) MD5 digest of various combinations of a random 32-bit salt and the password. See the APR source file apr_md5.c for the details of the algorithm.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы