инструмент для разработчиков / 24

Генератор .htpasswd для Apache / Nginx

Создавайте строки аутентификации и хеши паролей .htpasswd для Apache и Nginx прямо в памяти браузера.

Генератор .htpasswd для Apache / Nginx: TOEA создаёт строку, которую Apache и Nginx ожидают увидеть для базовой HTTP-аутентификации. По умолчанию используется формат Apache $apr1$: пароль объединяется с солью из восьми случайных символов и обрабатывается в тысяче раундов — именно так работает htpasswd -m и именно этот формат читают оба сервера. Работает на 100% локально в вашем браузере, файлы на сервер не загружаются.

Запуски
В вашем браузере
Стоимость
Бесплатно · без регистрации
Доступность
Готово к использованию

Подключение строки к серверу

Сохраните строку в файле за пределами корня веб-сайта, по одному user:hash в строке. Для nginx добавьте auth_basic "Restricted"; и auth_basic_user_file /etc/nginx/.htpasswd; в блок location или server. Для Apache используйте AuthType Basic, AuthName, AuthUserFile с полным путём к файлу и Require valid-user. После этого перезагрузите сервер; синтаксическая ошибка приведёт к сбою каждого запроса, а не только попыток входа.

Знаки доллара и обычный HTTP

Хеш содержит много символов $, а файлы Docker Compose, .env и некоторые метки прокси воспринимают $ как начало переменной. В Compose записывайте каждый $ как $$; иначе хеш будет незаметно укорочен, и ни один пароль не подойдёт.

Базовая аутентификация отправляет имя пользователя и пароль с каждым запросом в кодированном, но не зашифрованном виде. Используйте её за HTTPS и рассматривайте как защиту тестовых сайтов и административных путей, а не как систему входа для клиентов.

Как пользоваться

  1. Введите имя пользователя и пароль.
  2. Оставьте алгоритм Apache MD5, если у вас нет особых причин выбрать другой.
  3. Скопируйте созданную строку в файл .htpasswd.

Конфиденциальность и ограничения

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

Похожие инструменты

Часто задаваемые вопросы

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

Apache MD5 ($apr1$) — используйте его по умолчанию. Он использует соль и многократное хеширование, а его поддерживают и Apache, и Nginx. Вариант {SHA} — это хеш SHA-1 без соли, сохранённый только для старых конфигураций, которым он необходим. Собственная утилита Apache htpasswd помечает этот вариант как небезопасный: одинаковые пароли дают одинаковые хеши, а таблица предварительно вычисленных значений позволяет их подобрать.

Насколько это надёжно по сравнению с bcrypt?

Не настолько. bcrypt — более надёжный вариант, и Apache его поддерживает, но создать его здесь нельзя: для этого нужна реализация Blowfish, а её добавление означало бы поставку большого объёма кода, которому пришлось бы доверять. Если нужен bcrypt, локально выполните htpasswd -B -n username и вставьте полученный результат.

Можно ли проверить строку, прежде чем использовать её?

Да, и это стоит сделать. Сохраните строку в файл и выполните htpasswd -vb yourfile username password — Apache сообщит, прошла ли аутентификация. Эти строки проверены с помощью htpasswd и openssl passwd -apr1.

Бесплатный инструмент · запусков: в вашем браузере · аккаунт не нужен