utildev
← Blog
Hash & Criptografia6 min

SHA-256 vs MD5: qual usar para segurança?

Compare os algoritmos de hash MD5, SHA-1 e SHA-256. Entenda por que MD5 é inseguro para criptografia e quando cada algoritmo ainda é adequado.

Funções de hash criptográficas transformam qualquer entrada em uma string de tamanho fixo (o "digest"). São utilizadas para verificar integridade de arquivos, armazenar senhas e autenticar mensagens. Mas não são todas iguais — MD5, SHA-1 e SHA-256 têm características muito diferentes quando o assunto é segurança.

MD5: rápido mas quebrado para segurança

O MD5 gera um digest de 128 bits (32 caracteres hexadecimais). Era amplamente usado nos anos 90 para verificação de integridade e senhas. O problema: em 2004, pesquisadores demonstraram colisões práticas no MD5 — dois arquivos diferentes com o mesmo hash. Em 2008, foi possível criar certificados SSL falsos explorando colisões MD5. Hoje, uma GPU moderna consegue calcular bilhões de hashes MD5 por segundo.

Nunca use MD5 para hashing de senhas ou assinaturas digitais. Para verificação de checksum de arquivos não-sensíveis (onde colisão intencional é improvável), ainda pode ser usado.

SHA-1: deprecado pelo NIST

SHA-1 gera um digest de 160 bits. O NIST deprecou SHA-1 para uso criptográfico em 2011. Em 2017, o Google demonstrou o primeiro ataque de colisão prático (SHAttered) — dois PDFs diferentes com o mesmo hash SHA-1. Navegadores removeram suporte a certificados SSL assinados com SHA-1. Não use SHA-1 para novos sistemas.

SHA-256: o padrão atual

SHA-256 faz parte da família SHA-2 e gera um digest de 256 bits (64 caracteres hexadecimais). Não há colisões conhecidas. É o algoritmo por trás do Bitcoin, de certificados SSL modernos, de JWTs (HS256/RS256) e de inúmeros protocolos de segurança. Para uso geral em 2024, SHA-256 é a escolha correta.

  • MD5: 128 bits, quebrado para segurança, OK para checksums não-críticos
  • SHA-1: 160 bits, deprecado, não use em sistemas novos
  • SHA-256: 256 bits, seguro, padrão atual recomendado
  • SHA-512: 512 bits, mais lento, útil quando segurança máxima é prioridade

Para senhas: use bcrypt ou argon2, não SHA

Mesmo SHA-256 não é adequado para hashing de senhas. Funções de hash rápidas (SHA, MD5) permitem ataques de força bruta em GPUs a bilhões de tentativas por segundo. Use bcrypt, scrypt ou argon2 — funções propositalmente lentas e com salt.

Use as ferramentas de hash do UtilDev para gerar e comparar hashes MD5, SHA-1 e SHA-256 diretamente no navegador. Útil para verificar integridade de arquivos, depurar APIs e comparar valores esperados em testes.

Ferramentas relacionadas

Hasher SHA256
Gere hashes SHA256 para máxima segurança
Hasher MD5
Gere hashes MD5 de textos e strings
Hasher SHA1
Gere hashes SHA1 de textos e strings

Artigos relacionados

O que é JWT e como funciona?7 min →O que é HMAC e quando usar?5 min →