O que é o bcrypt
Bcrypt é uma função de hash criada especificamente para guardar senhas com segurança. Diferente de MD5 ou SHA, que são rápidos, o bcrypt é lento de propósito e tem um custo ajustável, o que torna inviável um atacante testar bilhões de senhas por segundo. Ele também embute um salt aleatório em cada hash, de modo que a mesma senha gera resultados diferentes e tabelas prontas (rainbow tables) não funcionam. Baseado no algoritmo Blowfish, é um dos padrões mais usados desde 1999. O cálculo aqui roda em um worker isolado no navegador, sem enviar dados.
O que é o custo (rounds) do bcrypt
O custo, também chamado de rounds ou fator de trabalho, define quantas iterações o bcrypt executa, em escala logarítmica. Cada unidade a mais dobra o tempo de cálculo: um custo 12 leva o dobro do tempo de um custo 11. Essa lentidão controlada é justamente a defesa, pois desacelera ataques de força bruta na mesma medida. Um valor entre 10 e 12 é o recomendado hoje, equilibrando segurança e desempenho; à medida que os computadores ficam mais rápidos, aumenta-se o custo. O fator escolhido fica gravado dentro do próprio hash, junto com o salt.
Por que dois hashes da mesma senha são diferentes
Dois hashes bcrypt da mesma senha saem diferentes porque cada um inclui um salt aleatório único. Esse salt é gerado na hora de criar o hash e fica embutido no resultado final, junto com o custo. Ele impede que senhas iguais produzam hashes iguais e derruba ataques com tabelas pré-calculadas. Você pode se perguntar como a verificação funciona então: ao conferir uma senha, o bcrypt lê o salt e o custo que estão no hash armazenado, refaz o cálculo com eles e compara. Se bater, a senha está correta, mesmo o hash parecendo diferente a cada geração.
Por que não usar MD5 ou SHA para senhas
MD5 e SHA são inadequados para senhas porque foram feitos para ser rápidos, e velocidade é o oposto do que se quer ao proteger senhas. Com uma placa de vídeo, um atacante testa bilhões de hashes SHA por segundo, e tabelas prontas revertem os mais comuns na hora. Bcrypt, scrypt e Argon2 resolvem isso sendo lentos de propósito, com custo ajustável e salt embutido, o que multiplica o tempo de um ataque. Por isso, guarde senhas sempre com um desses algoritmos, nunca com MD5 ou SHA puros. Use SHA para integridade e checksums, não para credenciais.
Como usar esta ferramenta
- No modo gerar, digite a senha e escolha o custo (rounds).
- Clique em gerar para obter o hash bcrypt.
- No modo verificar, cole um hash e a senha para conferir se batem.
Perguntas Frequentes (FAQ)
- O que é o custo (rounds) do bcrypt?
- É o número de iterações do algoritmo, em escala logarítmica. Cada unidade a mais dobra o tempo de cálculo. Um custo entre 10 e 12 é o recomendado hoje: seguro sem ficar lento demais.
- Por que dois hashes da mesma senha são diferentes?
- Porque o bcrypt inclui um salt aleatório em cada hash. Isso é proposital e seguro: mesmo assim, a verificação reconhece a senha correta, pois o salt fica embutido no próprio hash.
- Minha senha é enviada para algum servidor?
- Não. Todo o cálculo do bcrypt acontece no seu navegador, dentro de um worker. Nem a senha nem o hash saem do seu dispositivo.
