[Apache] Пароль в Base-64

Di_LIne
Дата: 31.08.2006 14:02:29
При одном из методов аутентификации, Apache берет данные их файла *.Auth
В книжек нашел, что пароль в этом файле зашифрован Base-64, типа этого:
editmaster:$apr1$3N0.....$tgb0SvkY1mQuEpOBzAnGz0
Для чего вот эта - $apr1$3N0 - часть строки?
И второй вопрос - алгоритс этой реализации Base-64?
Что бы из программы добавлять юзверей.
Kachalov
Дата: 31.08.2006 14:16:51
Сплошная каша!

1. При аутентификации Basic действительно логин и пароль клиента отправляются браузером закодированные (а не зашифрованные!) способом Base64.
Такой же способ кодирования используется в электронной почте при отправке вложений. Описание Base64 можно найти в Ине-те.

2. Apache хранит пароли в хэшированом виде, т. е. раскодировать пароль записаный с помощью htpasswd невозможно (только методом подбора). При хэшировании используется функция crypt.

3. В PHP/Perl есть вызовы системной функции crypt - называются также. Т. е. вполне реально с помощью PHP создать файл с паролями аналогичный создаваемому утилитой htpasswd

4. Формат записей создаваемых htpasswd:
editmaster:$apr1$3N0.....$tgb0SvkY1mQuEpOBzAnGz0
логин:$apr1$соль$хэш-код

соль - произвольная последовательность используемая при хэшировании пароля
apr1 - добавка к соли от разработчиков Apache (всегда одинаковая)

К сожалению PHP-функция crypt не позволит Вам запихнуть apr1 для хэширования пароля, но к счастью для Вас Apache понимает и другой формат хранения паролей:
логин:$соль$хэш-код

Дальше см. документацию по crypt (на сайте PHP мне кажется даже пример есть)
Di_LIne
Дата: 31.08.2006 14:28:07
Ну да, я так сразу и написал - КАША в голове и масла в ней - НЕ ХВАТАЕТ!
А нету у меня ПХП, то есть я ей НЕ пользуюсь...
Спасибо за подробное разложение информации в моей голове!
Kachalov
Дата: 31.08.2006 16:05:08
А чем ты пользуешься?
На чем прогу то писать собрался?
Рассказал бы...
Anjey aka PM
Дата: 01.09.2006 00:19:08
а лучше не бузить с пхп-шным криптом а использовать htpasswd (htpasswd2) который благо поставляется вместа с апачей и с его помощью юзверей добавлять. Благо вызов system еще никто не отменял.