Gerador de .htpasswd
Gere arquivos .htpasswd para autenticação básica do Apache e Nginx com segurança no navegador. Compatível com bcrypt, APR1-MD5 e SHA-1. As senhas nunca são enviadas ao servidor.
O que é um arquivo .htpasswd?
Um arquivo .htpasswd é um arquivo de texto simples que armazena pares de nome de usuário e senha com hash, um por linha, no formato usuário:hash. É a peça central da autenticação básica (Basic Authentication) do Apache e do Nginx: quando alguém tenta acessar uma rota protegida, o servidor compara as credenciais enviadas com as linhas desse arquivo antes de conceder acesso. Tradicionalmente, ele é criado com o comando htpasswd incluído no Apache, executado diretamente no servidor via SSH.
Nem todo ambiente, porém, oferece acesso fácil à linha de comando ou ao próprio servidor: hospedagem compartilhada, painéis de controle restritos ou simplesmente a falta de permissões administrativas são situações comuns. É aí que uma ferramenta capaz de gerar o mesmo formato direto no navegador se torna útil. Esta ferramenta calcula o hash da senha informada usando bcrypt, APR1-MD5 ou SHA-1 e produz a linha usuário:hash pronta para uso. Todo o cálculo é feito em JavaScript dentro do próprio navegador: a senha em texto puro nunca trafega pela rede nem chega a nenhum servidor externo. O arquivo gerado deve ser salvo fora do DocumentRoot do servidor e referenciado pela diretiva AuthUserFile na configuração do Apache ou do Nginx.
Como gerar um arquivo .htpasswd
- Adicione uma linha de usuário Clique no botão "Adicionar usuário" uma vez para cada conta que precisar criar. Cada linha da tabela representa exatamente um usuário e sua senha.
- Informe o usuário e a senha Em cada linha, digite o nome de usuário e a senha correspondente. Você pode alternar entre mostrar e ocultar a senha para conferir se digitou corretamente antes de gerar o arquivo.
- Escolha o algoritmo e o custo Selecione bcrypt, APR1-MD5 ou SHA-1 para cada linha conforme sua necessidade de compatibilidade. Ao escolher bcrypt, é possível ajustar o valor de custo (o expoente que determina quantas iterações são calculadas).
- Gere o arquivo Ao clicar em "Gerar", o cálculo do hash é executado imediatamente no seu navegador. Logo abaixo, uma pré-visualização mostra o conteúdo completo do arquivo .htpasswd resultante.
-
Copie ou baixe o resultado
Copie o conteúdo para a área de transferência ou baixe-o como arquivo pronto para enviar ao servidor e colocar no caminho indicado por
AuthUserFile.
Dicas para aproveitar melhor
- Use bcrypt: O algoritmo mais seguro disponível. Funciona com Apache 2.4+ e Nginx. Valores de custo mais altos tornam o hash mais lento e aumentam a resistência a ataques de força bruta (10 é o valor padrão recomendado).
- APR1-MD5 (
$apr1$) é indicado para compatibilidade com Apache 2.2 ou versões anteriores, e funciona com praticamente todas as versões do Apache e Nginx. - SHA-1 (
{SHA}) possui baixa resistência a colisões e não é recomendado. Use-o apenas em ambientes legados que exijam compatibilidade retroativa. - Coloque o arquivo .htpasswd fora do
DocumentRoot(ou raiz web do Nginx) para que não seja acessível diretamente via web. - Sempre use HTTPS. As credenciais de autenticação básica são apenas codificadas em Base64, não criptografadas — trafegam em texto simples sobre HTTP.
Casos de uso
Proteger um ambiente de staging antes do lançamento
Antes de publicar um site, é comum querer escondê-lo de mecanismos de busca e de terceiros não autorizados. Adicionar Basic Auth com um par usuário/senha é a forma mais rápida de erguer essa barreira sem desenvolver nada.
Restringir painéis internos sem sistema de login próprio
Muitas ferramentas administrativas, dashboards de monitoramento ou interfaces internas são implantadas sem uma tela de login própria. A Basic Auth adiciona uma camada mínima de controle de acesso em poucos minutos.
Somar uma segunda camada de defesa à restrição por IP
Quando o acesso também precisa ser permitido a partir de redes externas e uma lista de IPs permitidos sozinha não é suficiente, combinar Basic Auth com as regras de firewall existentes reforça a segurança em profundidade.
Proteger apenas determinados endpoints de uma API
Usando diretivas location no Nginx ou Directory no Apache, é possível aplicar a autenticação básica somente às rotas sensíveis da API, mantendo o restante do site de acesso público sem restrições.
Adicionar novos usuários a um serviço já em produção
Se o serviço já está em funcionamento, não é preciso regenerar o arquivo inteiro: basta gerar apenas as linhas referentes aos novos usuários e acrescentá-las ao final do .htpasswd existente.
Glossário
- Autenticação Básica (Basic Authentication)
- Método de autenticação padrão do HTTP em que o nome de usuário e a senha são codificados em Base64 e enviados a cada requisição pelo cabeçalho
Authorization. O servidor os verifica antes de conceder acesso ao recurso solicitado. - bcrypt
- Algoritmo de hash de senhas que incorpora um salt aleatório e um fator de custo ajustável. Ao aumentar o custo, o cálculo fica mais lento de forma controlada, o que mantém a resistência contra ataques de força bruta mesmo com hardware mais rápido. É o algoritmo atualmente recomendado.
- APR1-MD5
- Formato de hash próprio do Apache baseado em MD5, cujo resultado sempre começa com
$apr1$. É mantido principalmente por compatibilidade com instalações antigas do Apache que não suportam bcrypt. - SHA-1 (
{SHA}) - Formato de hash cujo resultado começa com
{SHA}. Não incorpora salt e sua resistência a colisões é considerada fraca pelos padrões atuais, por isso não é recomendado para novas implementações. - Salt
- Cadeia aleatória adicionada à senha antes do cálculo do hash. Graças a ela, dois usuários com a mesma senha obtêm hashes diferentes, o que neutraliza ataques baseados em tabelas pré-calculadas (rainbow tables).
DocumentRoot- Diretório que um servidor web expõe publicamente como raiz dos arquivos servidos. O arquivo .htpasswd deve ser salvo fora dessa pasta; caso contrário, poderia ser baixado diretamente ao digitar sua URL no navegador.
AuthUserFile- Diretiva de configuração do Apache que indica o caminho absoluto do arquivo .htpasswd usado para verificar as credenciais da autenticação básica em uma rota protegida.
Perguntas frequentes
.htaccess ou httpd.conf, apontando AuthUserFile para o caminho do arquivo .htpasswd gerado:AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user
nginx.conf ou ao bloco server correspondente:location /admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}O Nginx suporta tanto bcrypt quanto APR1-MD5.usuário:hash) ao final do arquivo existente. Cada linha representa um usuário. Linhas em branco e linhas iniciadas com # são ignoradas.
Curiosidade — Por que a Basic Auth sobrevive apesar da idade
A autenticação básica HTTP foi definida em 1999 pela RFC 2617 (atualizada para RFC 7617). O mecanismo é simples: concatenar usuário e senha com :, codificar em Base64 e enviar no cabeçalho Authorization.
Sua simplicidade explica por que ainda é amplamente usada: ideal para ambientes de staging, ferramentas internas ou como primeira linha de defesa combinada com listas de permissão de IP. Duas ou três linhas de configuração bastam, sem necessidade de middleware adicional ou banco de dados.
As limitações também existem: não há mecanismo de logout (a sessão persiste até fechar o navegador), nem gerenciamento de expiração de senhas nem autenticação multifator de série. Para serviços com requisitos de segurança reais, considere OAuth 2.0 ou OIDC.