Страница: 1 |
Страница: 1 |
Вопрос: Программное создание .htpasswd
Добавлено: 18.09.05 02:34
Автор вопроса: HACKER
Нужно:
На пхп функцию которая бы шифровала пароль так, чтобы Apache потом нормально обрабатывала его. (ось - винда)
Смотрел много примеров на эту тему, все скрипты "криво" шифруют пароль. Криво, в том смысле, что пароль якобы шифруется, но при запросе паролько которую мы шифровали неподходит, а подходит сам шифрованный пароль. Т.е. если я шифрую "505050", получается "VpWb9UtBozCUk" Но при запросе, подходит пароль не 505050, а VpWb9UtBozCUk т.е. апач думает что пароль записанный в .htpasswd никак не зашифрован. Шифровать пробовал вот этим классом http://www.creater.ru/index.php?section=scripts&id=1966 его немного изменял:
(943 строка)
изменил:
function assignPass ($UserID, $UserPass)
ну и соответственно ниже
$pass = $UserPass;
вызывал:
//Добавления админа
if($command=="add_admin"){
include("class.Htpasswd.php3");
$Htpasswd = new Htpasswd($ht_passwd);
if(!($Htpasswd->EXISTS)){
Msgbox ("Ошибка при добавлении нового админа");
exit;
} //if(!($Htpasswd->EXISTS))
$UserID = $login;
$Pass = $Htpasswd->assignPass($UserID, $password);
if(!empty($Pass)){
Msgbox ("Новый администратор <b>".$login."</b> успешно создан с паролем ".$password);
}else{ //if(!empty($Pass))
echo "Add user failed: $Htpasswd->ERROR <BR> \n\r";
} //if(!empty($Pass))
} //if($command=="add_admin")
т.е.
$UserID = $login;
$Pass = $Htpasswd->assignPass($UserID, $password);
походу всё должно быть хорошо, а нет, ситуация не изминилась, подходит шифрованный пароль как рассказывал выше...
У кого какие предложения как программно создать .htpasswd? Говорят что надо написать свою функцию которая бы пасс подгоняла к виду понятному для апача, и юзать её параллельно с md5()
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 18.09.05 02:45
на phpclub на форуме, по поиску ".htpasswd" куча топов с аналогичной не решенной проблемой.
P.S. Вызывать внешнюю программу (htpasswd.exe) не предлагать!
Номер ответа: 2
Автор ответа:
Progos
ICQ: 311715784
Вопросов: 39
Ответов: 157
Web-сайт:
Профиль | | #2
Добавлено: 18.09.05 06:08
А не хочешь авторизацию просто на РНР реализовать?
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 18.09.05 07:23
Вопрос-то о .htpasswd, а чем тебе не нравится вариант с внешней программой? У PHP есть функция system()
Номер ответа: 4
Автор ответа:
Progos
ICQ: 311715784
Вопросов: 39
Ответов: 157
Web-сайт:
Профиль | | #4
Добавлено: 18.09.05 07:32
Я могу дать пример на РНР
Выглядит оно точно так же, как и при использовании .htapasswd, и проблем никаких.
Я тоже сталкивался с тем, что Apache нормально не воспринимал пароли. Помучался немного, плюнул, и сделал все на РНР.
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 18.09.05 21:38
Я тоже сделал сейчас всё через пхп сессии. Но мне всё же интерестно было бы посмотреть на функцию шифрования пароля для .htpasswd. Sharp, внешнюю прогу хостер запускать не разрешает... знаю знаю... меняй хостера - поменяю, через года 2, я предоплату сделал.