Генератор .htpasswd

Собирает строки «имя:хеш» для защиты сайта паролем и целиком файл .htpasswd со всеми пользователями.

Куда положить файл

Проверить строку из файла

Подходит ли пароль к уже готовой строке — полезно, когда вход перестал работать.

Генератор .htpasswd превращает пару «имя и пароль» в строку вида имя:хеш, из которых складывается файл .htpasswd для пароля на сайт. Пользователей можно добавлять по одному кнопкой «Добавить к файлу», а готовый файл скачать кнопкой «Скачать .htpasswd». Рядом — куски настроек для nginx и Apache, в них подставляются путь к файлу на сервере и надпись, которую браузер покажет в окне входа.

Какой алгоритм выбрать

Список «Алгоритм» по умолчанию стоит на bcrypt: его понимают Apache от версии 2.4 и nginx. Настройка «Стоимость bcrypt» задаёт, сколько раз удваивается работа при подсчёте хеша; значение 10 ставит и сам htpasswd. Чем больше число, тем дольше сервер проверяет пароль и тем дороже злоумышленнику перебирать варианты.

Для Apache под Windows берите APR1-MD5. Этот старый формат на MD5 читает любая сборка Apache, в том числе под Windows, хотя подбирается он быстрее bcrypt. На обычном сервере с Linux хватит bcrypt, его понимают оба сервера. Алгоритмы SHA-512-crypt и SHA-256-crypt считает системная функция crypt; они тоже работают на Linux, но сборка Apache под Windows их не знает.

SHA-1 выбирайте только для старых систем, которым другие форматы недоступны. Он считает без соли, одинаковые пароли дают одинаковый хеш, а такие хеши ищут по готовым таблицам. Формата crypt на DES страница не выдаёт вовсе: он читает только первые восемь знаков пароля, и Apache под Windows его не понимает.

Куда положить файл и как включить проверку

Файл кладут вне папки, из которой сервер отдаёт страницы, чтобы никто не смог запросить его по адресу. Страховкой служит и поведение Apache: он не отдаёт файлы, имя которых начинается с точки. Права на файл должны позволять серверу его читать, но не отдавать посторонним.

В поле «Путь к файлу на сервере» укажите, где лежит .htpasswd, в поле «Надпись в окне входа» — текст для запроса пароля. Оба значения подставляются в готовые куски настроек для nginx и Apache, которые остаётся перенести в конфигурацию сервера. Когда браузер спрашивает у посетителя имя и пароль, он посылает их серверу в заголовке запроса, а сервер ищет имя в файле и сверяет пароль с хешем из строки.

По http этот заголовок идёт открытым текстом, поэтому защита имеет смысл только на https. Имя пользователя пишите латиницей, без пробелов и без двоеточия: двоеточием в строке отделяется имя от хеша. Если добавить в файл повторное имя, новая строка перекроет прежнюю.

Оцените инструмент

Помогите нам стать лучше

Другие инструменты