0Pricing
Cryptology Academy · Aula

bcrypt: algoritmo e fator de custo

Aprenda o funcionamento interno do bcrypt, o fator de trabalho e o ajuste adequado do custo.

bcrypt: algoritmo e fator de custo é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Boas-vindas

bcrypt é um algoritmo de geração de resumos de senhas criado em 1999 especificamente para ser lento e resistente a ataques de hardware. Ele continua sendo o algoritmo de geração de resumos de senhas mais amplamente utilizado.

Origens do bcrypt

Criado por Niels Provos e David Mazières com base na cifra Blowfish. A letra 'b' representa Blowfish. Sua principal ideia é usar a configuração dispendiosa de chaves do Blowfish para tornar o processo intencionalmente lento.

Formato do resumo bcrypt

$2b$12$saltsaltsaltsaltsaltsalthashhashhashhashhashhash $2b$: versão do algoritmo 12: fator de custo (log2 das iterações) salt: 22 caracteres base64 (16 bytes) hash: 31 caracteres base64 (24 bytes)

Fator de custo

Custo 12 = 2^12 = 4096 iterações. Custo 13 = 8192 iterações. Cada incremento dobra o tempo de computação. Ajuste o valor para que a geração do resumo leve cerca de 100–300 ms no seu hardware. A velocidade do invasor aumenta na mesma proporção.

bcrypt em Python

import bcrypt password = b'my_password' salt = bcrypt.gensalt(rounds=12) # generates random salt hashed = bcrypt.hashpw(password, salt) # Verify: bcrypt.checkpw(password, hashed) # True

Sal integrado

O bcrypt sempre gera e armazena o sal automaticamente. gensalt() produz um sal de 16 bytes criptograficamente aleatório. Você nunca precisa gerenciar o sal separadamente — ele fica incorporado à cadeia de caracteres do resumo.

Limite de 72 caracteres do bcrypt

O bcrypt trunca a entrada em 72 bytes. Senhas com mais de 72 caracteres são tratadas como idênticas após os primeiros 72 bytes. Solução alternativa: faça um resumo criptográfico prévio com SHA-512 antes do bcrypt (mas valide a abordagem).

Fluxo de verificação de senha

Autenticação: 1. O usuário envia a senha 2. Recupere o resumo armazenado do banco de dados 3. bcrypt.checkpw(submitted, stored_hash) 4. checkpw extrai o sal do resumo armazenado e o recalcula 5. Retorna True/False Nunca armazene a senha em texto puro.

Avaliações de desempenho

Custo 12 do bcrypt: - CPU de consumidor: ~150 ms por resumo - GPU (RTX 4090): ~50.000 resumos/s (em comparação com 10 bilhões para SHA-256) A vantagem do atacante é reduzida de 1 bilhão para ~300 com custo 12 do bcrypt.

Recomendações para o fator de custo

OWASP 2024: fator de custo do bcrypt ≥ 10. Recomendado: 12. Verifique anualmente — à medida que o hardware melhora, aumente o fator. Implemente o recálculo durante a autenticação: no login, verifique e atualize se necessário.

Limitações do bcrypt

Fraqueza do bcrypt: não exige muita memória. Os atacantes podem usar ASICs personalizados otimizados para bcrypt. Para aplicações novas, prefira Argon2id, que exige muita memória e é resistente a ASICs.

Verificação rápida

O que significa o fator de custo 12 em um resumo do bcrypt?

Recapitulação

O bcrypt é sólido, mas não exige muita memória. Em seguida, estudaremos o Argon2 — o campeão moderno da geração de resumos de senhas, com requisitos de memória configuráveis.

Perguntas Frequentes

A aula “bcrypt: algoritmo e fator de custo” é grátis?

Sim — o texto completo de “bcrypt: algoritmo e fator de custo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “bcrypt: algoritmo e fator de custo”?

Aprenda o funcionamento interno do bcrypt, o fator de trabalho e o ajuste adequado do custo. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “bcrypt: algoritmo e fator de custo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que o SHA-256 simples falha com senhas
  2. bcrypt: algoritmo e fator de custo
  3. Argon2: resumo de senhas com alto custo de memória
  4. PBKDF2 e escolha do algoritmo adequado
← Voltar para Cryptology Academy