Hi, Igor.
>> Поступила жалоба недавно от пользователя о невозможности авторизации.
>> Начал проверять. Оказалось что пароли добавленные с использованием
>> htpasswd (md5 и обычные) работают, пароли добавленные через внешние
>> perl скрипты с использованием crypt() работают. Проблемными оказались
>> только пароли добавленные сторонним софтом написанным на C.
>>
>> В исходниках есть такая строка:
>> // encrypt
>> password = crypt(password.c_str(), "$1$");
>>
>> Судя по всему $1$, как аргумент, означает криптование в md5, причем
>> пароли добавленные этим-же софтом, используя эту-же функцию на других
>> системах (linux, solaris) -- работают. Не работает только часть на
>> freebsd.
>>
>> Исходя из этого я сделал вывод что это какая-то os depended заморочка.
>> Вчера убил полтора часа но так ничего и не нашел.
>>
>> Апач стоит - 1.3.33
>>
>> Подскажите пожалуйста в какую сторону копать?
> $1$ - это md5. А ещё, скорее всего, нужен salt:
> http://www.freebsd.org/cgi/man.cgi?query=crypt&sektion=3&manpath=FreeBSD+5.3-RELEASE
Попробовал добавить salt, очень странно, но encoded строка с salt и
без него одинакова.
До добавления salt:
test1:$1IghwG8D6WtM
После.
test2:$1IghwG8D6WtM
Я упустил очень важный момент. Пароли то энкодятся, как оказалось, на
solaris, так что freebsd тут не виновата. Получается что виноват
solaris.
Солярка стоит 2.8 на intel.
--
Konstantin N. Bezruchenko, mail@xxxxxxxxxx * BK5536-RIPE *