Como usar
- Em Gerar hash, digite a senha e ajuste o custo (padrão 10).
- Clique em Gerar hash e copie o resultado.
- Em Verificar senha, informe a senha e o hash ($2a$, $2b$ ou $2y$).
- Clique em Verificar para ver se correspondem.
Casos de uso
- Criar o hash da senha de um usuário administrador em seeds de banco.
- Depurar falhas de login comparando a senha com o hash armazenado.
- Medir quanto tempo cada fator de custo leva para calibrar o backend.
Conceitos técnicos
Por que bcrypt
bcrypt é uma função de derivação de senha baseada no cifrador Blowfish, propositalmente lenta e com salt aleatório de 128 bits embutido no próprio hash. O salt impede tabelas pré-computadas e garante que senhas iguais gerem hashes diferentes.
Fator de custo
O custo define 2^custo iterações do key schedule. Cada incremento dobra o tempo de cálculo. A recomendação atual é escolher o maior custo que mantenha o login abaixo de cerca de 250 ms no seu servidor; 10 a 12 é comum.
Anatomia do hash
Em $2b$10$N9qo8uLOickgx2ZMRZoMye..., 2b é a versão, 10 o custo, os 22 caracteres seguintes são o salt e os 31 finais o hash, em uma variante própria de Base64.
Perguntas frequentes
Existe limite de tamanho de senha?
Sim. bcrypt considera apenas os primeiros 72 bytes. A ferramenta avisa quando a senha ultrapassa esse limite; acentos ocupam 2 bytes em UTF-8.
Qual a diferença entre $2a$, $2b$ e $2y$?
São revisões que corrigem bugs de implementação antigos. Para senhas ASCII são equivalentes, e bibliotecas modernas verificam todas.
Por que gerar o mesmo hash duas vezes dá resultados diferentes?
Cada geração usa um salt aleatório novo. A verificação funciona porque o salt está gravado dentro do próprio hash.