UTILS.
100% в браузере
🔒

Генератор .htpasswd

Создавайте строки .htpasswd для Apache/nginx с солёными хешами APR1-MD5 или SHA-1, полностью офлайн в вашем браузере.

— результат появится здесь —
Bcrypt не включён. APR1-MD5 солёный и рекомендуется; SHA-1 не солёный, только для устаревших систем.

Об этом инструменте

Сгенерируйте готовую к вставке строку учётных данных .htpasswd (username:hash) для HTTP Basic-аутентификации Apache или nginx. Имя пользователя, пароль и всё хеширование происходят локально в вашем браузере — ничего не загружается на сервер, и нет ни eval, ни внешних библиотек.

Поддерживаются два алгоритма. APR1-MD5 (формат Apache $apr1$) реализован на чистом JavaScript, включая самодостаточный MD5 и полный солёный цикл crypt из 1000 раундов, с 8-символьной случайной солью из crypto.getRandomValues. SHA-1 использует встроенный в браузер crypto.subtle.digest, кодируется в base64 и снабжается префиксом {SHA}, соответствуя выводу htpasswd -s. Bcrypt намеренно не включён, потому что корректный, быстрый bcrypt на чистом JS практически невозможно выполнить на стороне клиента.

Введите имя пользователя и пароль, выберите алгоритм и скопируйте получившуюся строку в ваш файл .htpasswd. Используйте «Новая соль», чтобы заново сгенерировать соль APR1 (каждое сохранение даёт другой хеш для того же пароля, что ожидаемо и правильно).

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

Отправляется ли мой пароль куда-либо?
Нет. Всё хеширование выполняется целиком в вашем браузере с помощью встроенного MD5 для APR1 и нативного crypto.subtle для SHA-1. Ничего не передаётся, и нет eval.
Какой алгоритм выбрать?
APR1-MD5 ($apr1$) — рекомендуемое значение по умолчанию для Apache и является солёным, поэтому он безопаснее из двух здесь. SHA-1 ({SHA}) не солёный и полезен в основном для устаревших конфигураций или совместимости с nginx.
Почему хеш APR1 меняется каждый раз?
APR1 использует случайную 8-символьную соль, поэтому один и тот же пароль даёт другой хеш каждый раз. Это сделано намеренно; Apache считывает соль обратно из сохранённого хеша при проверке входа.
Почему не предлагается bcrypt?
Bcrypt намеренно исключён. Корректный bcrypt на чистом JavaScript был бы большим и медленным в браузере, поэтому этот инструмент вместо этого поставляет надёжные офлайн-режимы APR1-MD5 и SHA-1.

Больше инструментов