Neste artigo
O que e htpasswd?
Um arquivo htpasswd e uma base de dados em arquivo simples utilizada pelos servidores web Apache e Nginx para armazenar nomes de utilizador e palavras-passe em hash para Autenticacao HTTP Basic. Cada linha contem um nome de utilizador e um hash de palavra-passe separados por dois pontos, como admin:$2y$10$abc... O arquivo fornece uma forma simples de proteger recursos web sem necessitar de um sistema de autenticacao completo.
O utilitario htpasswd era originalmente parte do projeto Apache HTTP Server, mas o formato de arquivo tornou-se um padrao de facto suportado por muitos servidores web, proxies reversos e ferramentas de desenvolvimento. Os geradores htpasswd modernos suportam multiplos algoritmos de hash incluindo bcrypt, SHA-1 e MD5, sendo o bcrypt a escolha recomendada para seguranca.
Como funciona a geracao de htpasswd
Gerar uma entrada htpasswd envolve fazer hash de uma palavra-passe em texto simples com um algoritmo escolhido e formata-la junto ao nome de utilizador. A forca do hash resultante depende do algoritmo e da sua configuracao.
- bcrypt ($2y$) — a opcao mais segura, utiliza um fator de custo configuravel (padrao 10) que controla o custo computacional de cada hash, tornando ataques de forca bruta impraticaveis
- SHA-1 ({SHA}) — produz um digest SHA-1 codificado em Base64 com prefixo {SHA}; mais rapido que bcrypt mas significativamente mais fraco contra ataques GPU modernos
- MD5 ($apr1$) — variante MD5 personalizada do Apache com sal aleatorio; formato legado ainda suportado mas nao recomendado para novas implantacoes devido a fraquezas conhecidas
Experimente gratuitamente — sem cadastro
Gerar entrada htpasswd →Utilizacoes comuns de htpasswd
A autenticacao baseada em htpasswd e amplamente utilizada para controlo de acesso leve onde um sistema de autenticacao completo seria excessivo.
- Protecao de ambientes de staging — restringir o acesso a ambientes de pre-producao para que apenas membros da equipa e partes interessadas possam ver o trabalho em andamento
- Seguranca do painel de administracao — adicionar uma camada extra de autenticacao em frente a paineis de administracao CMS, ferramentas de gestao de bases de dados ou dashboards de monitorizacao
- Acesso ao ambiente de desenvolvimento — proteger servidores de desenvolvimento locais ou partilhados contra acesso nao autorizado sem configurar OAuth ou LDAP
Perguntas frequentes
Devo usar bcrypt, SHA-1 ou MD5 para htpasswd?
Use sempre bcrypt quando possivel. O bcrypt e projetado especificamente para hash de palavras-passe com um fator de custo configuravel que o torna resistente a ataques de forca bruta. SHA-1 e MD5 sao funcoes hash rapidas nao projetadas para palavras-passe — podem ser quebradas ordens de magnitude mais rapido que bcrypt.
Onde devo colocar o arquivo htpasswd no meu servidor?
Armazene o arquivo htpasswd fora da raiz web para evitar que seja servido aos visitantes. Uma localizacao comum e /etc/apache2/.htpasswd ou /etc/nginx/.htpasswd. Depois referencie-o na configuracao do servidor com AuthUserFile (Apache) ou auth_basic_user_file (Nginx). Nunca o coloque num diretorio acessivel publicamente.
A autenticacao HTTP Basic e suficientemente segura para producao?
A autenticacao Basic envia credenciais codificadas em Base64 (nao encriptadas) com cada pedido, por isso deve ser sempre utilizada sobre HTTPS. Mesmo com HTTPS, faltam-lhe funcionalidades como gestao de sessoes, limitacao de taxa e bloqueio de conta. E adequada para cenarios de baixo risco como sites de staging ou ferramentas internas, mas a autenticacao de utilizadores em producao deve usar um sistema com sessoes baseadas em tokens.