O que é bcrypt? Um hash de senha deliberadamente lento
O bcrypt é uma função de hashing de senha construída para ser intencionalmente lenta e ajustável, de modo que a adivinhação por força bruta continue cara à medida que o hardware fica mais rápido.
O bcrypt é uma das funções de hashing de senha mais amplamente usadas. Diferentemente de um hash de uso geral, ele foi projetado para ser lento, e você pode aumentar essa lentidão ao longo do tempo com um work factor. O salting embutido e o custo ajustável fazem do bcrypt uma escolha sólida e testada em batalha para armazenar senhas, e é por isso que ele aparece em incontáveis aplicações.
O que torna o bcrypt diferente
Hashes gerais como SHA-256 são rápidos, o que é ótimo para checksums, mas terrível para senhas, porque atacantes podem adivinhar bilhões por segundo. O bcrypt é deliberadamente lento, transformando essa taxa de força bruta em algo muito mais gerenciável para os defensores.
O work factor
- Um parâmetro de custo define quantas rodadas o bcrypt executa.
- Cada incremento aproximadamente dobra o tempo por hash.
- Você o eleva ao longo dos anos à medida que o hardware acelera.
Salting embutido
O bcrypt gera e armazena um salt como parte de sua saída, de modo que cada hash de senha é único mesmo para senhas idênticas. Isso significa que rainbow tables são inúteis e os desenvolvedores não precisam gerenciar salts separadamente.
bcrypt versus opções mais novas
O bcrypt é comprovado e amplamente suportado. Funções mais novas como Argon2 acrescentam memory-hardness, resistindo a ataques que usam hardware especializado. O bcrypt continua sendo uma escolha forte; o Argon2 é frequentemente preferido para novos sistemas que precisam de resistência máxima.
bcrypt em CI/CD
Se seu app usa bcrypt, a varredura de dependências no CI deve confirmar que a biblioteca está atualizada e que o fator de custo é razoável. Um custo mal configurado (baixo demais) enfraquece a segurança silenciosamente, por isso vale a pena verificá-lo em testes e revisá-lo antes do deploy.
Onde ele se encaixa
O bcrypt protege senhas em repouso no banco de dados da sua aplicação. Ele não tem relação com como pipelines se autenticam em serviços, o que usa tokens e OIDC. Mantenha os dois modelos mentais separados: bcrypt para senhas humanas, tokens para acesso de máquina.
Principais conclusões
- O bcrypt é um hash de senha deliberadamente lento e ajustável, com salting embutido.
- Seu work factor pode ser elevado ao longo do tempo para acompanhar hardware mais rápido.
- Ele protege senhas armazenadas; não tem relação com autenticação por token de máquina.