1001Ferramentas
🔐 Dev

Gerador de .htpasswd

Gere linhas de .htpasswd para autenticação básica do Apache/Nginx. Suporta hashes MD5 (apr1), SHA1 e bcrypt. Cole o resultado direto no arquivo. Tudo no navegador.

A linha do .htpasswd sem instalar o Apache

Proteger um staging ou um painel com autenticação básica pede um arquivo .htpasswd, e o utilitário htpasswd que gera as linhas vem no pacote apache2-utils, que nem sempre está instalado na máquina (e no Windows, quase nunca). Aqui você digita usuário e senha e recebe a linha pronta no formato usuario:{SHA}hash, aceito tanto pelo Apache quanto pelo Nginx, para colar direto no arquivo.

Só o SHA1 é calculado de verdade nesta página, usando a WebCrypto do navegador. É um hash sem salt, herdado do formato antigo do Apache: funciona em qualquer servidor, mas é fraco contra ataque de dicionário, então o recomendado para produção é bcrypt. Como bcrypt e MD5 apr1 não são gerados aqui, ao selecioná-los a ferramenta mostra o modelo da linha e o comando htpasswd equivalente (-B para bcrypt, -m para MD5) para você rodar no servidor.

Para um diretório temporário ou um ambiente interno, a linha SHA1 resolve em segundos; para qualquer coisa exposta à internet, gere bcrypt com htpasswd -B. E lembre que Basic Auth envia usuário e senha em toda requisição, apenas codificados em Base64: sem HTTPS, qualquer um no caminho lê a senha. A senha digitada aqui não sai do navegador; o hash é calculado localmente, sem nenhuma requisição de rede.

Perguntas frequentes

A senha que eu digito é enviada para algum servidor?
Não. O hash SHA1 é calculado no próprio navegador com a API WebCrypto; a página não faz nenhuma requisição com a senha.
Qual algoritmo devo escolher?
Para proteção rápida de um staging, o SHA1 gerado aqui basta. Para produção ou qualquer coisa exposta à internet, use bcrypt; a ferramenta mostra o comando htpasswd -B para gerá-lo no servidor.
Onde coloco a linha gerada?
Num arquivo (ex: /etc/nginx/.htpasswd), uma linha por usuário. No Nginx, aponte auth_basic_user_file para ele; no Apache, use AuthUserFile no vhost ou no .htaccess.

Ferramentas Relacionadas