Criptografia
Cálculo BCrypt
Calcula o hash BCrypt de um texto no navegador. O texto não é enviado ao servidor.
| Texto | |
|---|---|
| Rodadas |
※O hash é calculado no seu navegador. Nem o texto inserido nem o hash calculado são enviados ao servidor.
Tips
- BCrypt adiciona automaticamente um salt, portanto a mesma entrada produz um hash diferente a cada vez que é hasheada.
- Aumentar o número de rodadas (fator de custo) aumenta o custo computacional, melhorando a resistência a ataques de força bruta. Um valor de 10–12 é geralmente recomendado.
- No PHP, use
password_hash($password, PASSWORD_BCRYPT); no Ruby, use o gembcrypt-rubypara gerar hashes equivalentes. - O prefixo
$2y$no hash é o identificador do algoritmo; o número que se segue é o número de rodadas. - Considere também o mais recente Argon2 (disponível desde o PHP 7.2) como outro algoritmo adequado para armazenamento de senhas.
Curiosidade — A batalha de senhas e hashes: por que BCrypt é escolhido
Na violação de dados do LinkedIn em 2012, aproximadamente 6,5 milhões de senhas foram armazenadas usando apenas SHA-1 sem salt, e a maioria foi quebrada em dias por ataques de tabela arco-íris. Esse incidente serviu como um grande alerta para o design de armazenamento de senhas.
Uma GPU moderna de alto desempenho (como a NVIDIA RTX 4090) pode calcular MD5 aproximadamente 68 bilhões de vezes por segundo. BCrypt é intencionalmente projetado para ser computacionalmente custoso — com 12 rodadas, está limitado a alguns milhares de cálculos por segundo — conferindo uma resistência dramaticamente maior a ataques de força bruta. Com o mesmo hardware, você poderia tentar 68 bilhões de tentativas MD5 por segundo, mas apenas alguns milhares de BCrypt. Essa diferença é crítica.
BCrypt foi originalmente projetado para o OpenBSD em 1999. Mais de 20 anos depois, ainda está em uso ativo e, junto com o mais recente Argon2 (disponível desde o PHP 7.2), é uma das escolhas padrão para armazenamento de senhas.