Skip to content
Latchkey

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.

Guias relacionados