Transforme usuário e senha em uma linha usuário:hash para um arquivo .htpasswd do Apache. Todos os formatos — texto puro, crypt, apr1, SHA-1 e bcrypt — são calculados no navegador e conferidos com o openssl passwd, o htpasswd do Apache e o crypt da glibc; a senha não sai da aba.
Funciona localmente no seu navegadorDigite um usuário e uma senha, escolha o formato e clique em Gerar entrada htpasswd. A página devolve uma linha usuário:hash pronta para acrescentar a um arquivo .htpasswd e, antes de você copiá-la, lista os avisos do formato escolhido.
Tudo é calculado no navegador. A entrada apr1 confere com openssl passwd -apr1 e htpasswd -m, a de bcrypt com as linhas $2y$ que o Apache grava com htpasswd -B, e a de SHA-1 com o formato {SHA} do htpasswd -s. A senha não é enviada e nenhuma requisição sai da aba enquanto você digita.
plain guarda a senha como digitada e o httpd só aceita isso no Windows e no Netware. crypt é a rotina Unix antiga: 13 caracteres, sal de 2 caracteres e apenas os 8 primeiros caracteres da senha; o restante é descartado em silêncio, por isso uma frase longa perde força aqui.
MD5 (apr1) grava $apr1$sal$hash: um esquema próprio do Apache que aplica 1000 rodadas de MD5 à senha e a um sal de 8 caracteres, e é o que o htpasswd -m produz. SHA-1 grava {SHA} seguido do base64 de um resumo SHA-1; ao contrário dos outros não tem sal, então uma senha gera sempre a mesma linha. bcrypt grava $2y$custo$sal$hash, com 16 bytes aleatórios de sal e 2^custo repetições do calendário de chaves.
Um arquivo .htpasswd tem uma linha usuário:hash por conta e é lido pelo Apache via AuthUserFile. Um diretório protegido mínimo usa AuthType Basic, AuthName "Restricted", AuthUserFile /etc/apache2/.htpasswd e Require valid-user. Mantenha o arquivo fora da raiz do site e legível apenas pelo usuário do servidor web.
No terminal, as mesmas linhas saem do htpasswd: -B gera bcrypt (-C define o custo), -m o formato apr1, -s SHA-1 e -d crypt. Um arquivo pode misturar formatos, então uma linha crypt antiga convive com uma bcrypt nova; verifique qualquer linha com htpasswd -vb arquivo usuário.
A autenticação básica HTTP envia a senha em base64 em cada requisição, então a conexão precisa ser HTTPS: o hash protege o arquivo, não o transporte. crypt, SHA-1 e apr1 são rápidos de calcular, que é exatamente o que interessa a quem rouba o arquivo; use bcrypt nas entradas novas e substitua as antigas conforme mexer nas contas.
O gerador não guarda nem transmite a senha: o cálculo acontece na página e o sal vem do gerador aleatório do navegador. O custo 10 leva cerca de meio décimo de segundo aqui e o 12 cerca de um segundo, por isso o campo para em 14, embora o htpasswd aceite até 17.