Categoria: Desenvolvimento

Gerador de htpasswd

Ideia nossaFalta uma ferramenta?

Crie entradas de arquivo de senhas para Basic Auth localmente

Gere uma linha htpasswd do Apache no seu navegador. Crie credenciais de Basic Auth com bcrypt e copie ou baixe uma entrada .htpasswd sem nunca enviar a senha a um servidor.

Cada passo dobra o trabalho que um atacante precisa fazer — e também o tempo que esta página leva para gerar a linha. De 10 a 12 atende à maioria dos servidores.

Linha htpasswd
O resultado aparecerá aqui.

O bcrypt lê no máximo 72 bytes de uma senha; o que vier depois é ignorado, tanto nesta página quanto no seu servidor.

Salve o arquivo fora da raiz web e aponte o AuthUserFile para ele. Um .htpasswd dentro de um diretório servido pode ser baixado.

A senha vira hash nesta aba. Ela nunca é enviada a lugar nenhum, nunca é armazenada, e a linha resultante também não.

Tudo nesta página é processado no seu navegador. Nada é enviado.

Para que serve

Um arquivo .htpasswd é uma lista simples de registros `usuário:hash` que a autenticação Basic do Apache consulta em um login, e o nginx lê o mesmo formato em auth_basic_user_file. Esta página constrói esses registros no seu dispositivo: a implementação de bcrypt roda na aba, então a senha nunca viaja. O bcrypt é o padrão porque é propositalmente lento e tem sal individual, que é o que torna caro quebrar um arquivo roubado; o controle de custo define o quanto mais lento você o deixa. O SHA-1 é oferecido só para um servidor antigo demais para aceitar bcrypt — ele é sem sal e rápido, e a página diz isso onde você escolhe.

Como usar

  1. Informe o usuário e a senha, ou gere uma senha aleatória.
  2. Mantenha o bcrypt e escolha um custo — de 10 a 12 atende à maioria dos servidores.
  3. Copie a linha, ou baixe o arquivo .htpasswd, e guarde-o fora da sua raiz web.

Privacidade

Esta ferramenta roda inteiramente no seu navegador. O que você digita nunca é enviado, salvo ou compartilhado — fechar a aba já remove tudo.

Perguntas frequentes

Minha senha é enviada?
Não. O hash é calculado na aba do navegador. A senha, o sal e a linha final nunca são transmitidos, registrados ou armazenados em lugar nenhum.
Qual hash devo escolher?
bcrypt, a não ser que seu servidor realmente não aceite. Ele tem sal por entrada e é lento de propósito, então quem roubar o arquivo precisa gastar tempo real em cada tentativa. A opção SHA-1 é sem sal e rápida de quebrar, e existe só por compatibilidade.
O que o custo do bcrypt faz?
É o logaritmo na base 2 do número de rodadas de preparação da chave, então cada passo dobra o trabalho — para um atacante e para o seu servidor no momento do login. Custo 10 a 12 é o equilíbrio usual; custos maiores também fazem esta página demorar bem mais.
Posso usar a saída com o nginx?
Sim. O nginx lê o mesmo formato de arquivo em auth_basic_user_file e aceita entradas bcrypt, então uma linha gerada aqui serve para Apache e para nginx.
Onde o arquivo deve ficar?
Fora do diretório que seu servidor publica, com o AuthUserFile apontando para o caminho dele. Se o .htpasswd ficar dentro de uma pasta servida, qualquer pessoa pode baixar os hashes e quebrá-los offline.