The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как создать строку логин/пароль для .htpasswd средствами PHP"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как создать строку логин/пароль для .htpasswd средствами PHP"
Сообщение от prashant emailИскать по авторуВ закладки on 06-Авг-03, 18:54  (MSK)
Помогите решить проблему - нужно автоматически (средствами РНР) создавать файлы .htaccess и .htpasswd (то есть заводить новых юзеров Апача). Застопорился я на том что не нашёл алгоритма шифрования, работающего под РНР, способного создавать пароли юзеров подобно встроенной в Апач утилите.

Тут ещё в заблуждение ввёл некий немец, предлагающий такое решение:
http://www.lars-brinkmann.de/faq/file/make_htaccess.txt

Оказалось что пароли, создаваемые crypt($passwd,CRYPT_STD_DES) не такие же, которые создаются самим апачем, точнее программкой "Encode Unix Password", работающей на моём компе и которой я до сих пор успешно пользовался, создавая их "вручную".

Слышал что PERL может такие пароли создавать, но тогда возникнет очередная головная боль - как обращатся к нему из моих PHP-скриптов?

Вобщем вопросов куча, а спросить не у кого, а у кого спрашивал - не знают...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как создать строку логин/пароль для .htpasswd средствами PHP"
Сообщение от Serial Искать по авторуВ закладки on 07-Авг-03, 10:12  (MSK)
>.htpasswd (то есть заводить новых юзеров Апача). Застопорился я на том
>что не нашёл алгоритма шифрования, работающего под РНР, способного создавать пароли
>юзеров подобно встроенной в Апач утилите.
>
А смысл?
exec('$APACHE_BIN/htpasswd -b  $APACHE_BIN/.htpass '.$login.' '.$pass1.' 2>&1',$output,$result);
if ($result==0) {
  echo "Пользователь зарегистрирован<br>";
} else {
  echo "код ошибки $result<br>";
  echo "Сообщение об ошибке: <br>";
  foreach ($output as $val) echo $val."<br>";
}
Естественно, надо позаботиться о безопасности вызова (проверить $login и $pass)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как создать строку логин/пароль для .htpasswd средствами PHP"
Сообщение от prashant emailИскать по авторуВ закладки on 07-Авг-03, 13:04  (MSK)
>А смысл?
>exec('$APACHE_BIN/htpasswd -b  $APACHE_BIN/.htpass '.$login.' '.$pass1.' 2>&1',$output,$result);
>if ($result==0) {
>  echo "Пользователь зарегистрирован<br>";
>} else {
>  echo "код ошибки $result<br>";
>  echo "Сообщение об ошибке: <br>";
>  foreach ($output as $val) echo $val."<br>";
>}
>Естественно, надо позаботиться о безопасности вызова (проверить $login и $pass)

Спасибо за помощь, но у меня какая-то фигня выходит - всякий раз, когда вызывается эта апачевская утилита с параметром "-b" в строке "login:passwd" выводится новый пароль, причём я это проверял на локальном компе(win) и в интернете (Linux). Пробовал параметр "-bd" - не помогает :(

проблема  вторая - $APACHE_BIN не установлена, но я подставил туда
/usr/local/apache/bin/ - заработало

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как создать строку логин/пароль для .htpasswd средствами PHP"
Сообщение от Serial Искать по авторуВ закладки on 07-Авг-03, 18:09  (MSK)
>Спасибо за помощь, но у меня какая-то фигня выходит - всякий раз,
>когда вызывается эта апачевская утилита с параметром "-b" в строке "login:passwd"
>выводится новый пароль, причём я это проверял на локальном компе(win) и
>в интернете (Linux). Пробовал параметр "-bd" - не помогает :(
>
Так это ж так и должно быть ;-)
Судя по поверхностному просмотру сырцов htpasswd они активно пользуют там функцию rand() :-)

/usr/local/Apache2/bin # ./htpasswd -cb .httest test1 testpasswd
Adding password for user test1
/usr/local/Apache2/bin # ./htpasswd -b .httest test2 testpasswd
Adding password for user test2
/usr/local/Apache2/bin # cat .httest
test1:YQ.e2WYw1uFsE
test2:RtnbM/q1P98x2
/usr/local/Apache2/bin # rm .httest
/usr/local/Apache2/bin # ./htpasswd -cb .httest test1 testpasswd
Adding password for user test1
/usr/local/Apache2/bin # ./htpasswd -b .httest test2 testpasswd
Adding password for user test2
/usr/local/Apache2/bin # cat .httest
test1:BUGrd1AcocH3Y
test2:3OyZn.O8aA6g6

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как создать строку логин/пароль для .htpasswd средствами PHP"
Сообщение от prashant emailИскать по авторуВ закладки on 08-Авг-03, 12:33  (MSK)
>Так это ж так и должно быть ;-)
>Судя по поверхностному просмотру сырцов htpasswd они активно пользуют там функцию rand()
>:-)

Во как! Заработало! А я и не подозревал о таком продвинутом алгоритме шифрования :)

Моя-то программка генерила всегда одну и ту же строку сколько бы раз я не вводил туда логин и пароль... Вот, век живи - век учись :)

Спасибо за помощь, Serial

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру