Pular para o conteúdo principal

Gerador de htpasswd

API reference

Gere uma linha .htpasswd do Apache (usuário:hash) para HTTP Basic Auth, usando o MD5 $apr1$ do Apache, {SHA} SHA-1 ou o crypt tradicional. O hash é calculado no seu navegador — a senha nunca é enviada para lugar nenhum.

Entrada

Sem dois-pontos e sem espaços — o dois-pontos separa os dois campos no arquivo.

Configurações

bcrypt (htpasswd -B) é a opção moderna e mais segura, e funciona no Apache 2.4+. APR1 é a alternativa portátil para servidores Apache antigos ou que não são Apache. SHA-1 e crypt são apenas para configurações legadas — ambos são inseguros.

Saída

Linha .htpasswd

Cole isto no seu arquivo .htpasswd — um usuário por linha.

O hash sem o nome de usuário, para formatos de configuração que mantêm os dois separados.

Isso foi útil?

Mais formas de usar esta ferramenta

API REST

curl -X POST https://api.iotools.cloud/v1/tool/htpasswd-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "admin",
    "password": "correct horse battery staple",
    "algorithm": "bcrypt"
  }'

Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.

Peça a um agente de IA

Use the IOTools `htpasswd-generator` tool (htpasswd Generator) on this input:

YOUR_INPUT_HERE

Cole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.

Widget para incorporar

<iframe
  src="https://iotools.cloud/embed/htpasswd-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Gerador de htpasswd — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Coloque isso na sua própria página — grátis, sem chave, só um link de volta.

Custo por chamada de API/MCPA partir de 5 créditos
Precisa de mais créditos?Ver preços

Também disponível via

Guias

O que é um arquivo .htpasswd?

.htpasswd é o arquivo simples que o Apache usa para guardar credenciais de HTTP Basic Authentication — a caixa de login que aparece antes de uma página carregar. Cada linha contém um usuário: um nome de usuário, um dois-pontos e um hash da senha dele.

admin:$apr1$dQ2mR8sT$Gk1p6oq9WcE1n0eXqYd0J.

Você aponta o Apache para o arquivo com AuthUserFile, e ele verifica as senhas recebidas contra esses hashes. A senha em si nunca é armazenada.

Como usar

  1. Informe o nome de usuário e a senha.
  2. Escolha um algoritmo de hash (APR1, a não ser que você tenha um motivo para não usar).
  3. Clique em Gerar htpasswd e copie a linha para o seu arquivo .htpasswd — um usuário por linha.

Um .htaccess correspondente fica assim:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

Qual algoritmo devo usar?

  • bcrypt ($2y$) — o padrão moderno e a opção mais forte que o Apache suporta. Ele é propositalmente lento e usa salt, exatamente o que se espera de um hash de senha: torna ataques de força bruta e quebra com GPU caros. É o que o htpasswd -B gera e funciona no Apache 2.4 e posteriores. Escolha este a não ser que tenha um motivo específico para não usá-lo.
  • APR1 ($apr1$) — o MD5 próprio do Apache, com salt e 1.000 rodadas. É a alternativa portátil: funciona em todas as plataformas onde o Apache roda, incluindo servidores Apache 2.2 mais antigos e alguns softwares que não são Apache, e é o que o htpasswd -m produz. Use-o quando o bcrypt não estiver disponível.
  • SHA-1 ({SHA}) — um digest SHA-1 simples e sem salt. Como não há salt, dois usuários com a mesma senha terão o mesmo hash, e ele cai facilmente com uma rainbow table. Existe para servidores antigos que não aceitam outro formato.
  • crypt — DES tradicional do Unix. Inseguro, só existe em Unix e ignora silenciosamente tudo o que vier depois do oitavo caractere da senha. Use apenas em configurações realmente antigas.

Algo a saber sobre o bcrypt especificamente?

Duas coisas. Primeiro, o bcrypt usa apenas os primeiros 72 bytes de uma senha — o restante é ignorado. Isso é inerente ao algoritmo, não uma limitação desta ferramenta, e 72 bytes é muito mais do que qualquer senha razoável precisa. Segundo, o hash é escrito com o prefixo $2y$, a tag que o próprio htpasswd -B do Apache usa; as variantes $2a$, $2b$ e $2y$ selecionam todas o mesmo algoritmo, então o resultado é verificado em qualquer lugar onde o bcrypt é aceito (Apache, Nginx, password_verify do PHP, e assim por diante).

A minha senha é enviada para algum lugar?

Não. Cada hash é calculado no seu navegador, em JavaScript. A senha nunca é transmitida, registrada ou armazenada, e a ferramenta funciona mesmo com a sua rede desconectada. (A versão antiga desta ferramenta enviava a senha para um servidor para gerar o hash — esta versão não precisa disso.)

Os hashes estão realmente corretos?

Sim, e vale verificar em vez de simplesmente confiar. Cada hash bcrypt é confirmado com o htpasswd -vbB do próprio Apache — uma implementação independente que verifica se o hash autentica a senha original. A saída APR1 é byte a byte idêntica à do openssl passwd -apr1 e do htpasswd -m, e a saída crypt corresponde ao crypt(3) do sistema, tanto em vetores de referência fixos quanto em pares de senha/salt gerados aleatoriamente — incluindo senhas não ASCII, onde uma implementação ingênua diverge silenciosamente.

Por que o hash muda toda vez que eu clico em Gerar?

Porque bcrypt, APR1 e crypt usam salt: um salt aleatório novo entra em cada hash, então a mesma senha produz uma string diferente a cada vez. É exatamente o que se quer — impede que um atacante que roube o arquivo perceba que dois usuários compartilham a mesma senha. Qualquer uma das linhas geradas autentica a mesma senha.

htpasswdapachebasic authpasswordapr1md5htaccess

Ama as ferramentas? Livre-se dos anúncios.

Um único pagamento remove todos os anúncios da sua conta, para sempre. Sem assinatura, sem rastreamento.