MD5 vs SHA-256: Qual é a diferença real?
Tanto o MD5 quanto o SHA-256 produzem uma impressão digital de tamanho fixo de qualquer entrada, mas contam histórias muito diferentes sobre segurança. Este artigo contrasta os dois, mostra por que um ainda é usado e por que o outro está em desuso, e ajuda você a escolher a ferramenta certa para checksums versus segurança.
O que um hash realmente é?
Um hash é uma função de via única: a mesma entrada sempre gera a mesma saída (uma impressão digital), mas você não consegue recuperar a entrada a partir da impressão. O MD5 gera 128 bits; o SHA-256 gera 256 bits. Essa diferença de largura sustenta a maioria das diferenças práticas entre eles.
Por que a resistência a colisões é o decisivo?
Uma colisão é quando duas entradas diferentes geram a mesma saída de hash. O MD5 sofre ataques práticos que tornam barato encontrar colisões, então é inaceitável para qualquer coisa crítica de segurança. O SHA-256 segue resistente, por isso sistemas mais novos o escolhem.
Por que o MD5 ainda aparece hoje?
O MD5 é rápido e ainda aparece em checksums para verificar downloads, integrações legadas e deduplicação. Isso é aceitável quando não há ator malicioso. No momento em que um atacante puder escolher ambas as entradas, o MD5 está fora de questão.
Quais são os trade-offs de velocidade e recursos?
O MD5 é mais rápido e leve, útil para hashing de alto volume não adversarial. O SHA-256 custa mais CPU, mas compensa com uma margem de segurança muito maior. Para aplicações modernas, o custo extra raramente é um gargalo real.
Como escolher a função hash certa?
Para checksums sem adversário, qualquer um funciona. Para senhas, hashing, assinaturas ou qualquer coisa crítica para integridade, escolha uma função lenta e à prova de colisões. Gere checksums para qualquer entrada com o gerador de hash, que suporta MD5, SHA-1, SHA-256 e SHA-512.