Lição 4

Erros comuns com hash

Evite uso incorreto típico de hash em aplicações e depuração.

Bugs relacionados a hash costumam vir de comparar a ideia certa com os bytes ou o algoritmo errado.

Armazenar senhas com MD5 ou SHA-256 puro

Hashes rápidos sem salt e sem key stretching são vulneráveis a rainbow tables e adivinhação offline. Armazenamento de senha exige funções dedicadas (Argon2, bcrypt, scrypt) e salt único por usuário.

Hashear a representação errada

Estas não são a mesma operação:

  • Texto UTF-8 Hello
  • Os bytes ASCII após remover espaços nas bordas
  • Uma string JSON com ordem de chaves diferente
  • Um arquivo que inclui newline no final

Sempre hasheie a sequência exata de bytes que o sistema usa.

Tratar hash como segredo

Se o atacante sabe que o espaço de entrada é pequeno — senhas comuns, IDs sequenciais, chaves curtas de config — pode quebrar o hash offline. Hashes protegem comparações de integridade, não confidencialidade de entradas previsíveis.

Comparar algoritmos incorretamente

Um digest MD5 nunca vai bater com SHA-256 do mesmo input porque os algoritmos diferem. Da mesma forma, hex maiúsculo e minúsculo costumam ser equivalentes, mas representações Base64 e hex não são intercambiáveis sem conversão.

Usar hashes fracos para decisões de segurança

Checksum MD5 serve para detectar corrupção acidental de arquivo. É má escolha para assinatura de código, validação de certificado ou evidência de adulteração contra atacante ativo.

Voltar à visão geral do curso