Skip to main content
CheckTown
Dev Tools

bcrypt: Como funciona o hash de senhas

Publicado 7 min de leitura
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.

Ferramentas relacionadas