Ir para o conteúdo
ToolsMinify logo
Todos os artigos

SHA-256 vs MD5 - qual hash você deve usar? (2026)

SHA-256 vs MD5 frente a frente: tamanho do digest, velocidade, resistência a colisões e segurança real. Entenda por que o MD5 está quebrado, onde ele ainda serve, quando usar SHA-256 e por que senhas pedem bcrypt ou Argon2.

Atualizado em 19 de julho de 20267 min de leitura

Use o Gerador de hash - de graça

Abra a ferramenta e aplique o que você aprendeu neste guia.

Abrir Gerador de hash

MD5 e SHA-256 são duas das funções de hash mais usadas, e aparecem nos mesmos lugares - checksums de arquivos, verificação de downloads, checagens de integridade e (por engano) armazenamento de senhas. Mas elas não são intercambiáveis. O MD5 é mais antigo e mais rápido, só que é considerado criptograficamente quebrado há duas décadas, enquanto o SHA-256 é o padrão moderno em que confiam certificados TLS, assinaturas digitais e blockchains. Este guia compara SHA-256 vs MD5 em tamanho, velocidade e segurança, explica exatamente por que o MD5 falha e mostra onde cada um ainda é adequado.

Resposta rápida

Use SHA-256 para qualquer coisa relacionada a segurança: verificação de integridade, assinaturas digitais e checksums em que você realmente confia. O MD5 está quebrado por ataques de colisão práticos e só deveria ser usado em tarefas sem relação com segurança, como uma checagem rápida contra corrupção acidental. E não use nenhum dos dois sozinho para armazenar senhas - use um algoritmo lento e com salt, como bcrypt, scrypt ou Argon2.

O que é uma função de hash?

Uma função de hash criptográfica recebe qualquer entrada - uma palavra, um arquivo, um gigabyte de dados - e produz uma string de tamanho fixo chamada de hash, digest ou impressão digital. A mesma entrada sempre produz a mesma saída, mas o processo só vai em um sentido: você não consegue pegar um hash e voltar atrás para recuperar os dados originais. Tanto o MD5 quanto o SHA-256 são funções de hash desse tipo; a diferença está no tamanho da saída e em quão difícil é atacá-las.

Espera-se que um bom hash criptográfico tenha três propriedades, e entendê-las é a chave para ver por que o MD5 falha e o SHA-256 não.

  • Determinístico e de tamanho fixo: a mesma entrada sempre gera o mesmo digest, e todo digest tem o mesmo tamanho, independentemente do tamanho da entrada.
  • Resistência a pré-imagem: dado um hash, é inviável encontrar qualquer entrada que o produza, então você não consegue revertê-lo.
  • Resistência a colisão: é inviável encontrar duas entradas diferentes que produzam o mesmo hash. Essa é exatamente a propriedade que o MD5 perdeu.

Os hashes também apresentam o efeito avalanche: mude um único caractere - até mesmo adicione um espaço no fim - e cerca de metade dos bits de saída se inverte, produzindo um digest completamente diferente. É isso que torna o hash útil para detectar se os dados mudaram.

MD5: rápido, mas quebrado

O MD5 (Message-Digest Algorithm 5) foi projetado por Ron Rivest em 1991. Ele produz um digest de 128 bits, escrito como 32 caracteres hexadecimais. Por exemplo, o MD5 da string de três letras abc é 900150983cd24fb0d6963f7d28e17f72. O MD5 é rápido e já foi usado em quase todo lugar para checksums, hash de senhas e certificados digitais.

Por que o MD5 está quebrado

O problema fatal do MD5 são as colisões. Em 2004, pesquisadores demonstraram uma forma prática de gerar duas entradas diferentes com o mesmo hash MD5, e desde então os ataques só ficaram mais rápidos e mais baratos. Hoje dá para produzir uma colisão em um computador comum em segundos. Como a resistência a colisão é a propriedade da qual a maioria dos usos de segurança depende, o MD5 é considerado criptograficamente quebrado.

Isso não é só teoria. Em 2012, o malware Flame usou uma colisão de MD5 para forjar um certificado de assinatura de código da Microsoft, o que permitiu que ele se passasse por uma atualização legítima do Windows. Colisões de prefixo escolhido também tornam possível criar dois arquivos - digamos, um documento inofensivo e um malicioso - que compartilham o mesmo MD5, de modo que um checksum MD5 não prova mais que um arquivo é autêntico.

Onde o MD5 ainda serve

O MD5 não é inútil - ele só não é uma ferramenta de segurança. Ainda funciona bem em tarefas sem adversário, como um checksum rápido para pegar corrupção acidental de arquivo, uma chave de hash table ou de cache, ou deduplicação de arquivos em que ninguém está tentando forçar uma colisão de propósito. No momento em que segurança ou confiança entram em jogo, mude para SHA-256.

SHA-256: o padrão moderno

O SHA-256 faz parte da família SHA-2, publicada pelo NIST em 2001. Ele produz um digest de 256 bits, escrito como 64 caracteres hexadecimais. O SHA-256 de abc é ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad - repare que ele tem exatamente o dobro do tamanho do digest MD5 acima. O SHA-256 não tem ataques de colisão práticos conhecidos e é o motor por trás dos certificados TLS/HTTPS, da assinatura de software, dos identificadores de objetos do Git e da blockchain do Bitcoin.

Vale mencionar o SHA-1, o algoritmo que fica entre o MD5 e o SHA-256. O SHA-1 produz um digest de 160 bits e também foi quebrado por uma colisão prática (o ataque SHAttered, de 2017), então ele também está descontinuado. Quando você precisa de um hash seguro, o SHA-256 é o padrão seguro e bem suportado; SHA-384 e SHA-512 oferecem digests ainda maiores quando você quer uma margem extra.

SHA-256 vs MD5: comparação lado a lado

Veja como os dois algoritmos se comparam nos fatores que mais importam.

  • Tamanho do digest - o MD5 tem 128 bits (32 caracteres hex); o SHA-256 tem 256 bits (64 caracteres hex).
  • Ano de lançamento - MD5 em 1991; SHA-256 (família SHA-2) em 2001.
  • Velocidade - o MD5 é mais rápido de calcular; o SHA-256 é um pouco mais lento, mas rápido o bastante para praticamente qualquer uso.
  • Resistência a colisão - o MD5 está quebrado (colisões práticas desde 2004); o SHA-256 não tem colisões práticas conhecidas.
  • Situação de segurança - o MD5 está descontinuado para todo uso de segurança; o SHA-256 é recomendado e amplamente confiável.
  • Usos comuns hoje - MD5: checksums legados, chaves de cache, deduplicação sem segurança; SHA-256: verificação de integridade, assinaturas digitais, certificados, blockchains.

A conclusão: o MD5 só ganha em velocidade bruta, e essa vantagem raramente importa. Em toda dimensão que envolve confiança, quem ganha é o SHA-256.

Quando usar cada um

Use SHA-256 (ou algo mais forte) quando

  • Você verifica se um arquivo baixado bate com o checksum de quem o publicou.
  • Você cria ou confere assinaturas digitais e certificados.
  • Você gera identificadores content-addressed, como commits do Git, chaves de deduplicação ou caches em que a correção importa.
  • Qualquer situação em que alguém possa tentar falsificar de propósito um hash que coincida.

O MD5 só é aceitável quando

  • Você precisa de uma checagem rápida contra corrupção acidental em dados internos e confiáveis.
  • Você está montando uma chave de hash table ou de cache sem relação com segurança.
  • Você precisa interoperar com um sistema legado que só entende MD5 - e nenhuma garantia de segurança está sendo dada.

Também não use SHA-256 para senhas

Um erro comum é migrar o armazenamento de senhas de MD5 para SHA-256 e achar que o problema está resolvido. Não está. O SHA-256 foi projetado para ser rápido, e velocidade é exatamente o que você não quer para senhas: ela permite que um atacante que roubou o seu banco de dados teste bilhões de tentativas por segundo. Hashes rápidos de uso geral são a ferramenta errada para credenciais.

Para senhas, use um algoritmo dedicado de hash de senha, propositalmente lento e com salt:

  • Argon2 - a recomendação moderna e vencedor da Password Hashing Competition; memory-hard para resistir a ataques com GPU.
  • bcrypt - testado em campo e amplamente disponível, com fator de trabalho ajustável.
  • scrypt - memory-hard como o Argon2 e uma alternativa sólida.

Cada um deles adiciona um salt aleatório único por senha e permite aumentar o fator de trabalho com o tempo, e é por isso que eles - e não MD5 ou SHA-256 - são a escolha certa para armazenar credenciais de usuário.

Perguntas frequentes

O MD5 é seguro?

Não. O MD5 não é seguro para nenhum propósito que dependa de resistência a colisão, como assinaturas digitais, certificados ou verificar que um arquivo não foi adulterado. Ataques de colisão práticos existem desde 2004 e hoje são triviais de executar. O MD5 só é aceitável como checksum rápido contra corrupção acidental e não maliciosa.

O SHA-256 é melhor que o MD5?

Sim, em segurança. O SHA-256 produz um digest mais longo, de 256 bits, e não tem ataques de colisão práticos conhecidos, então é a escolha certa para verificação de integridade, assinaturas e certificados. A única vantagem do MD5 é ser um pouco mais rápido, o que quase nunca compensa a segurança quebrada.

Dá para descriptografar ou reverter MD5 ou SHA-256?

Não. O hash é um caminho de mão única, então não há nada para descriptografar: você não consegue calcular a entrada original a partir de um hash. O que os atacantes fazem é chutar entradas e gerar o hash delas até uma bater, usando rainbow tables ou força bruta, e é por isso que hashes rápidos como MD5 e SHA-256 sem salt são perigosos para senhas.

O SHA-256 é muito mais lento que o MD5?

O SHA-256 é mais lento que o MD5, mas para cargas típicas - gerar hash de arquivos, strings ou payloads de API - a diferença é desprezível em hardware moderno. O ganho de segurança compensa de longe o pequeno custo de desempenho, então velocidade raramente é um bom motivo para escolher MD5.

Devo usar MD5 ou SHA-256 para senhas?

Nenhum dos dois sozinho. Ambos são hashes rápidos de uso geral, o que facilita a adivinhação offline. Use no lugar uma função de hash de senha lenta e com salt, como Argon2, bcrypt ou scrypt.

O que deve substituir o MD5?

Para checksums e integridade, substitua o MD5 por SHA-256 (ou SHA-512). Para armazenamento de senhas, substitua por Argon2, bcrypt ou scrypt. Evite o SHA-1 como substituto, já que ele também foi quebrado por um ataque de colisão prático.

Gere um hash SHA-256 na hora

Use o Gerador de Hash gratuito para criar digests SHA-256, SHA-1, SHA-384 ou SHA-512 a partir de qualquer texto direto no seu navegador - nada é enviado. A Web Crypto API do navegador não inclui MD5, o que já é um empurrão útil na direção da opção mais segura.

Use o Gerador de hash - de graça

Abra a ferramenta e aplique o que você aprendeu neste guia.

Abrir Gerador de hash

Artigos relacionados