#HashPass
Toggle sidebar
#HashPass
Segurança de senhas Ferramentas gratuitas Conteúdo educativo

#HashPass

Ferramentas gratuitas para gerar e validar hashes, testar senhas e aprender boas práticas de autenticação com foco em clareza, segurança e conteúdo útil.

Comparativo

Bcrypt vs Argon2id: diferenças, quando usar e como configurar corretamente

Bcrypt e Argon2id são dois dos algoritmos mais utilizados para armazenar senhas com segurança. Ambos são projetados para proteger contra ataques de força bruta, mas possuem diferenças importantes em arquitetura, custo e resistência a hardware especializado.

Bcrypt

Compatível, maduro e simples de operar.

Argon2id

Mais moderno, com controle de memória e tempo.

Decisão

Escolha depende de contexto, infraestrutura e compatibilidade.

Por que não usar MD5 ou SHA para senha?

Algoritmos como MD5, SHA1 e SHA256 são extremamente rápidos. Isso é bom para integridade de dados, mas péssimo para senhas.

Quanto mais rápido o algoritmo, mais tentativas um atacante consegue fazer por segundo. Em ataques modernos com GPU, bilhões de combinações podem ser testadas rapidamente.

Segurança de senha exige algoritmos deliberadamente lentos.

O que é Bcrypt?

Bcrypt é um algoritmo criado especificamente para hashing de senha. Ele incorpora automaticamente um salt e permite configurar um parâmetro chamado cost (ou rounds).

  • Proteção contra ataques rainbow table
  • Custo configurável
  • Amplamente suportado
  • Maduro e testado há décadas

O valor do cost determina quantas iterações serão executadas. Quanto maior o valor, mais lento o hash — e mais seguro contra brute force.

O que é Argon2id?

Argon2 foi o vencedor da Password Hashing Competition (PHC) em 2015. A variante Argon2id é atualmente considerada a mais segura para uso geral.

  • Resistente a ataques com GPU
  • Controla custo de CPU e memória
  • Projetado para ambientes modernos

Diferente do bcrypt, Argon2id permite configurar:

  • memory cost (uso de memória)
  • time cost (iterações)
  • parallelism (threads)

Comparação direta

Bcrypt: simples, maduro, excelente compatibilidade.
Argon2id: mais moderno, mais configurável, melhor resistência contra GPU.

Em sistemas novos, Argon2id é geralmente recomendado. Em sistemas legados ou onde compatibilidade é prioridade, bcrypt ainda é totalmente aceitável.

Resumo executivo

Critério Bcrypt Argon2id
Compatibilidade Muito alta Boa, mas depende do ambiente
Configuração Mais simples Mais flexível
Defesa contra GPU Boa Melhor
Indicação geral Legado e ampla compatibilidade Projetos novos e maior controle de custo

Como configurar no Laravel

No Laravel, você pode escolher o driver no arquivo config/hashing.php.

'driver' => 'argon2id',

'bcrypt' => [
    'rounds' => 12,
],

'argon' => [
    'memory' => 65536,
    'threads' => 2,
    'time' => 4,
],

Ajuste esses valores com base na capacidade do seu servidor. O ideal é que o hash leve entre 100ms e 300ms para ser calculado.

Como decidir sem exagero

Nem todo projeto precisa da configuração mais agressiva possível. O custo precisa ser alto o bastante para dificultar ataques, mas ainda compatível com a experiência real do usuário e com o volume de autenticações que o sistema suporta.

Em outras palavras: segurança de senha não é só escolher um nome de algoritmo. Também envolve latência aceitável, capacidade de infraestrutura, proteção adicional com rate limit e revisão periódica dos parâmetros usados em produção.

Quando usar cada um?

  • Use Argon2id: novos projetos, foco em segurança máxima.
  • Use Bcrypt: compatibilidade ampla ou ambientes limitados.

Regra prática

Se o projeto é novo e o ambiente suporta bem, Argon2id costuma ser a melhor escolha. Se você precisa de máxima compatibilidade, interoperabilidade ou já opera um stack consolidado, bcrypt continua sendo uma opção segura e defensável.

Conclusão

Tanto bcrypt quanto argon2id são opções seguras quando configuradas corretamente. A escolha ideal depende do contexto do projeto, compatibilidade e recursos disponíveis.

O mais importante não é apenas o algoritmo, mas também aplicar boas práticas como rate limit, validação forte de senha e monitoramento de tentativas.

Continuar lendo