0Pricing
Ethical Hacking Academy · Aula

Hashing

MD5, SHA, bcrypt

Hashing é uma aula grátis de Ethical Hacking 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 Ethical Hacking Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ethical Hacking Academy inclui 4 aulas no total.

O Que é um Hash?

Uma função de hash recebe uma entrada de qualquer tamanho e produz uma saída de tamanho fixo chamada resumo. A mesma entrada sempre produz o mesmo resumo.

Fundamentalmente, o hashing é uma operação unidirecional. Não é possível reverter matematicamente um resumo para obter a entrada original. É isso que diferencia os hashes da codificação e da criptografia.

Propriedades de um Bom Hash

Uma função de hash criptográfica deve ser:

  • Determinística: a mesma entrada produz a mesma saída.
  • Rápida de calcular (para hashing geral), mas idealmente lenta para hashing de senhas.
  • Resistente à pré-imagem: dado um resumo, não é possível encontrar a entrada.
  • Resistente a colisões: é difícil encontrar duas entradas com o mesmo resumo.
  • Efeito avalanche: a alteração de um bit modifica aproximadamente metade dos bits da saída.

MD5

O MD5 produz um resumo de 128 bits (32 caracteres hexadecimais). Ele é rápido e historicamente comum, mas está criptograficamente comprometido: existem ataques práticos de colisão.

Nunca use MD5 para segurança. Você ainda o encontrará em somas de verificação de arquivos e sistemas legados, o que faz dele um alvo frequente durante avaliações.

echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99

A Família SHA

A família SHA (Algoritmo de Hash Seguro) é mais robusta:

  • SHA-1: 160 bits. Atualmente considerado comprometido (ataque de colisão 'SHADOW HAMMER' / SHAttered). Evite-o.
  • SHA-2: inclui SHA-256 e SHA-512. É amplamente usado e atualmente seguro.
  • SHA-3: um design mais recente baseado no Keccak, uma alternativa ao SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...

Hashing Não é Criptografia

A criptografia pode ser revertida com uma chave. O hashing não pode ser revertido de forma alguma. É exatamente por isso que o hashing é usado para armazenar senhas: o servidor nunca precisa da senha original.

Quando você inicia sessão, o servidor calcula o hash do que você digitou e o compara com o hash armazenado. Se forem iguais, você será autenticado. A senha em texto claro nunca é armazenada.

O problema: tabelas arco-íris

Como o hashing é determinístico, o resumo de «password» é igual para todos os utilizadores. Os atacantes pré-calculam enormes tabelas de consulta de resumo para texto claro chamadas tabelas arco-íris.

Se dois utilizadores partilharem a mesma palavra-passe, os seus resumos armazenados serão idênticos, revelando esse facto. Resumos rápidos simples, como MD5 ou SHA-256, não são adequados para palavras-passe.

Uso de salt

Um salt é um valor aleatório exclusivo adicionado a cada palavra-passe antes do hashing. Isto significa que:

  • Palavras-passe idênticas produzem resumos diferentes.
  • As tabelas arco-íris pré-calculadas tornam-se inúteis.

O salt é armazenado juntamente com o resumo; não é secreto. A sua função é tornar cada resumo único, obrigando os atacantes a quebrá-los individualmente.

stored = salt + hash(salt + password)
# salt is random and unique per user

bcrypt: criado para palavras-passe

bcrypt foi concebido especificamente para armazenar palavras-passe. É intencionalmente lento e inclui um fator de custo configurável (fator de trabalho), que o torna mais lento à medida que o hardware melhora.

Um resumo bcrypt inclui o algoritmo, o custo e o salt numa única cadeia de caracteres. A lentidão é uma funcionalidade: limita a velocidade a que os atacantes podem tentar adivinhar.

$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hash

Outros resumos lentos

Além de bcrypt, as opções modernas de hashing de palavras-passe incluem:

  • scrypt: exige muita memória e resiste a ataques com GPU e ASIC.
  • Argon2: vencedor da Competição de Hashing de Palavras-passe, configurável para tempo e memória. É a escolha moderna recomendada.
  • PBKDF2: aplica um resumo rápido durante muitos milhares de iterações; é aceitável, mas mais fraco do que os anteriores.

HMAC e integridade

Os resumos também são usados para garantir a integridade, não apenas para palavras-passe. Um HMAC (Código de Autenticação de Mensagens baseado em Hash) combina um resumo com uma chave secreta para verificar tanto a integridade como a autenticidade de uma mensagem.

As somas de verificação de ficheiros (frequentemente SHA-256) permitem verificar se uma transferência não foi adulterada. Como hacker, somas de verificação incompatíveis podem revelar ficheiros modificados ou maliciosos.

Resumos no mundo real

Como hacker, encontrará resumos constantemente:

  • /etc/shadow no Linux armazena resumos de palavras-passe com salt, com prefixos como $6$ (SHA-512) ou $2b$ (bcrypt).
  • O Windows armazena resumos NTLM na base de dados SAM.
  • As aplicações Web armazenam palavras-passe resumidas nas suas tabelas de utilizadores.

Reconhecer o prefixo indica imediatamente o algoritmo e a sua estratégia para quebrá-lo.

$6$rounds=5000$salt$hash   # SHA-512 crypt
$2b$12$saltandhash...      # bcrypt

Verificação rápida

Escolha a opção mais segura para armazenar palavras-passe de utilizadores.

Recapitulação

Agora compreende o hashing:

  • O hashing é uma transformação unidirecional, de tamanho fixo e determinística, diferente da codificação e da encriptação.
  • MD5 e SHA-1 estão comprometidos; utilize SHA-256 para garantir a integridade geral.
  • Para palavras-passe, utilize algoritmos lentos com salt: bcrypt, scrypt ou Argon2.
  • Os salts impedem as tabelas arco-íris; o HMAC acrescenta integridade baseada numa chave.

A seguir, explorará a encriptação simétrica e assimétrica com AES e RSA.

Perguntas Frequentes

A aula “Hashing” é grátis?

Sim — o texto completo de “Hashing” é 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 Ethical Hacking Academy, atualize para CoddyKit PRO. O curso de Ethical Hacking Academy inclui 4 aulas no total.

O que vou aprender em “Hashing”?

MD5, SHA, bcrypt Você pratica Ethical Hacking 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 Ethical Hacking Academy?

Nenhuma experiência prévia é necessária. Ethical Hacking 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 “Hashing”?

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 Ethical Hacking Academy?

Sim. Cada aula de Ethical Hacking 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. Codificação versus criptografia
  2. Hashing
  3. Criptografia simétrica e assimétrica
  4. Quebra de hashes
← Voltar para Ethical Hacking Academy