1001Ferramentas
🔎 Segurança

Auditor de .htpasswd

Cole um arquivo .htpasswd e veja o esquema de hash de cada usuário, o custo do bcrypt, linhas malformadas e usuários repetidos. Também testa uma senha contra a linha.

Tudo roda no seu navegador — nenhuma linha é enviada para lugar nenhum. Ainda assim, prefira testar com uma cópia em vez do arquivo de produção.

Auditoria
Testar uma senha

O que tem dentro do seu .htpasswd

Arquivo de autenticação básica costuma acumular camadas: uma linha criada em 2014 com o algoritmo da época, outra que alguém colou de um gerador online, uma terceira em texto puro que entrou "só para testar" e ficou. Como todas funcionam, ninguém revisa. Cole o conteúdo aqui e a página diz, linha por linha, qual esquema de hash está em uso e o que ele vale hoje.

A identificação é pela forma do hash: $2y$ é bcrypt e vem com o custo à mostra, $apr1$ é o MD5 salgado do Apache, $5$ e $6$ são SHA-crypt, {SHA} é SHA-1 sem salt, treze caracteres soltos são o crypt DES dos anos 70, e o que não casa com nada disso é senha guardada em claro. Junto vêm os avisos que importam: usuário repetido, custo de bcrypt abaixo de 10, esquema sem salt e linha malformada.

A segunda parte da página testa uma senha contra a linha de um usuário — útil quando o login falha e você precisa saber se o problema é a senha ou a configuração do servidor. Funciona para bcrypt, APR1, SHA-crypt, SHA-1 e texto puro. O crypt DES é identificado mas não conferido: ele depende do crypt do sistema, e é justamente o esquema que ninguém deveria ainda estar usando. Nada é enviado a servidor algum, mas prefira trabalhar com uma cópia em vez do arquivo de produção.

Perguntas frequentes

Por que usuário repetido é problema?
Porque o servidor usa a primeira ocorrência e ignora as demais, sem registrar nada. Se alguém mudou a senha acrescentando uma linha nova no fim em vez de editar a existente, a senha nova simplesmente não vale — e o sintoma é um usuário jurando que trocou a senha e continua entrando com a antiga.
Qual custo de bcrypt devo procurar?
Dez é o mínimo razoável e o padrão do htpasswd desde 2.4.4; doze é comum hoje para dados sensíveis. Custo 5 aparece bastante porque foi o padrão de versões antigas da ferramenta, e ele deixa a quebra por força bruta cerca de trinta vezes mais rápida do que no custo 10.
O Apache aceita todos esses formatos?
Não. Ele entende bcrypt, APR1, SHA-1 no formato {SHA}, crypt DES e texto puro. Os formatos $5$ e $6$ são do crypt do glibc: funcionam no nginx em Linux, mas o Apache os recusa. É uma incompatibilidade que costuma aparecer só depois da migração de servidor.

Ferramentas Relacionadas