Neste artigo
O que e bcrypt?
bcrypt e uma funcao de hash de senhas adaptativa projetada em 1999. Baseada na cifra Blowfish, bcrypt incorpora um salt e um fator de custo configuravel que controla a complexidade computacional do hash.
Diferente de funcoes hash rapidas como MD5 ou SHA-256, bcrypt e projetada especificamente para armazenamento de senhas. Sua natureza adaptativa permite aumentar o fator de custo ao longo do tempo.
Como o bcrypt funciona
Um hash bcrypt contem todas as informacoes para verificar uma senha em uma unica string.
- $2b$ — o identificador do algoritmo bcrypt versao 2b
- 10$ — o fator de custo (2^10 = 1024 rodadas)
- 22 caracteres de salt codificado em Base64 (128 bits de aleatoriedade)
- 31 caracteres de saida de hash codificada em Base64
Experimente gratuitamente — sem cadastro
Gerar hash bcrypt →Escolhendo o fator de custo certo
O fator de custo determina quantas iteracoes o bcrypt realiza internamente. Cada incremento dobra o tempo de computacao.
O objetivo e tornar o hashing lento o suficiente para dissuadir ataques de forca bruta mas rapido para a experiencia do usuario.
- Custo 10 — hash em ~100ms; boa base para a maioria das aplicacoes web
- Custo 12 — hash em ~300-400ms; recomendado para alta seguranca
- Custo 14+ — hash em 1 segundo ou mais; geralmente lento demais para login interativo
bcrypt vs outros algoritmos de hash
Nem todos os algoritmos de hash sao adequados para armazenamento de senhas.
- MD5/SHA-256 — projetados para velocidade; nunca use para senhas
- bcrypt — intensivo em CPU, comprovado desde 1999; a recomendacao padrao
- Argon2 — vencedor da Password Hashing Competition 2015; intensivo em memoria; recomendado para novos projetos
Casos de uso comuns
bcrypt e usado onde senhas precisam ser armazenadas com seguranca.
- Registro de usuario — hash da senha com bcrypt antes de salvar no banco de dados
- Verificacao de login — hash da senha enviada e comparacao com o hash armazenado
- Migracao de senhas — ao atualizar de MD5/SHA para bcrypt, rehash senhas no proximo login bem-sucedido
Perguntas frequentes
Posso mudar o fator de custo sem resetar senhas?
Sim. A cada login bem-sucedido, verifique se o hash armazenado usa um fator de custo antigo. Se sim, rehash a senha com o novo fator. Isso se chama rehashing oportunista.
Como verifico uma senha contra um hash bcrypt?
A string de hash bcrypt contem a versao, fator de custo e salt. A funcao de verificacao os extrai, faz hash da senha candidata com os mesmos parametros e compara em tempo constante.
Devo usar bcrypt ou Argon2?
Ambos sao otimas opcoes. bcrypt e comprovado ha mais de 25 anos. Argon2 e mais novo e intensivo em memoria. Para novos projetos, Argon2id e recomendado. bcrypt permanece seguro com fator de custo 10 ou superior.