Добавить юзера и пасс в htpasswd средствами php

E2
На сайте с 26.03.2009
Offline
65
628

Всем доброго времени суток.

Появилась необходимость добавлять скриптом через php пользователей с паролями в файл авторизации .htpasswd

Вот как я это делаю:

htaccess


AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /var/www/site/data/www/.htpasswd
Require valid-user

user.php


$File = "/var/www/site/data/www/.htpasswd";
$Handle = fopen($File, 'a');
$_POST['passmd'] = md5($_POST['pass']);
$Data = $_POST['userlogin'].":".md5($_POST['passmd'])."\n";
fwrite($Handle, $Data);
echo "Пользователь добавлен в файл <br />";
fclose($Handle);

Но, почему-то, авторизацию пройти не получается.

Все дело в том, что md5($str) дает неверную строку пароля.

Например, пароль `123` она генерит как `202cb962ac59075b964b07152d234b70`.

Если использовать утилиту htpasswd под виндой, она выдает этот пароль как `12IbR.gJ8wcpc`. И он принимается!

Если генерить через htpasswd в линухе, то выдает что-то типа `$apr......` и тоже все работает.

Почему же md5($str) не пашет?

Как можно победить эту проблему, чтобы скрипт правильно шифровал пароли?

KU
На сайте с 17.07.2008
Offline
251
#1
Хостинг ( https://good-host.net ) / Linux VPS ( https://good-host.net/vps ) / Windows VPS ( https://good-host.net/windows-vps ) / Выделенные серверы ( https://good-host.net/dedicated ) 14 лет онлайн!
E2
На сайте с 26.03.2009
Offline
65
#2

Понял, спасибо.

Странно, но помню когда-то использовал и работал все.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий