Lição 3
MD5 e algoritmos SHA
Compare MD5, SHA-1 e a família SHA-2 no trabalho real.
Algoritmos de hash produzem digests de tamanhos e margens de segurança diferentes. Escolher o errado quebra interoperabilidade ou cria falsa sensação de segurança.
MD5 (128 bits)
MD5 é rápido e ainda aparece em checksums legados, chaves de cache e ferramentas antigas. Não é adequado para designs novos sensíveis a segurança — ataques de colisão são práticos. Use MD5 para compatibilidade e inspeção, não para provar integridade forte contra atacantes motivados.
SHA-1 (160 bits)
SHA-1 é em grande parte legado. Git ainda usa formato de ID de objeto baseado em SHA-1, mas muitas plataformas migraram SHA-1 em certificados TLS e assinaturas. Trate SHA-1 como MD5: útil quando a spec exige, fraco para garantias novas.
SHA-256, SHA-384, SHA-512 (família SHA-2)
Defaults modernos comuns:
- SHA-256: checksum de arquivo, endereçamento de conteúdo, muitas APIs
- SHA-384 / SHA-512: variantes exigidas por alguns padrões e plataformas
Os três têm amplo suporte em navegadores via Web Crypto API.
Guia prático de escolha
- Verificar checksum moderno de download → SHA-256
- Bater com ferramenta de terceiros que ainda imprime MD5 → MD5
- Atender documento de compliance que cita SHA-512 → SHA-512
- Armazenar senhas → nenhum destes sozinho; use Argon2, bcrypt ou scrypt
Antes de comparar resultados, confirme nome do algoritmo, saída hex vs Base64 e se o hash cobre bytes brutos ou texto UTF-8.