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.
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.
Compatível, maduro e simples de operar.
Mais moderno, com controle de memória e tempo.
Escolha depende de contexto, infraestrutura e compatibilidade.
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.
Bcrypt é um algoritmo criado especificamente para hashing de senha. Ele incorpora automaticamente um salt e permite configurar um parâmetro chamado cost (ou rounds).
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.
Argon2 foi o vencedor da Password Hashing Competition (PHC) em 2015. A variante Argon2id é atualmente considerada a mais segura para uso geral.
Diferente do bcrypt, Argon2id permite configurar:
Em sistemas novos, Argon2id é geralmente recomendado. Em sistemas legados ou onde compatibilidade é prioridade, bcrypt ainda é totalmente aceitável.
| 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 |
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.
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.
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.
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.