MD5, SHA-256, SHA-3 Qual algoritmo de hash você realmente precisa?
Uma comparação direta entre MD5, SHA-1, SHA-256, SHA-3 e BLAKE3 — em quais situações cada algoritmo é apropriado, onde eles falham e qual deve ser usado por padrão.
Se você ainda está usando MD5 como padrão, está em boa companhia — mas provavelmente está fazendo a escolha errada. Funções de hash produzem um "print" de tamanho fixo dos seus dados, mas não são intercambiáveis. Escolher o errado é, dependendo da direção errada, uma sobrecarga paranóica ou uma falha real de segurança.
Aqui está o que cada algoritmo realmente faz, onde falha e o que você deveria usar em vez disso.
O que um algoritmo de hash faz
Uma função de hash criptográfica recebe entrada de qualquer tamanho e retorna uma saída de tamanho fixo — determinística, um sentido, e (idealmente) resistente a colisões. A mesma entrada sempre produz o mesmo hash. Você não pode reverter isso. E alterar até um único byte na entrada muda completamente a saída.
Essas três propriedades tornam as funções de hash úteis para verificar a integridade dos dados, assinar documentos e construir checksums. Os algoritmos abaixo fazem isso. O que as separa é a resistência a ataques e a velocidade com que eles executam.
MD5: Pare de usá-lo para segurança
O MD5 produz um hash de 128 bits e executa rápido — exatamente o problema. Foi projetado em 1991, e em 2004 pesquisadores demonstraram ataques de colisão contra ele. Hoje, gerar dois arquivos diferentes que produzem o mesmo hash MD5 é computacionalmente trivial.
Onde falha: Qualquer contexto de segurança — verificações de integridade de arquivos por canais não confiáveis, assinaturas digitais, certificados TLS.
Onde ainda é aceitável: Checksums não de segurança. Deduplicação de arquivos, geração de chaves de cache, impressão de conteúdo dentro de um sistema que você controla — o MD5 é rápido e suficiente. Colisões só importam se um atacante puder explorá-las.
Precisa gerar um hash MD5 rapidamente? Use o Gerador de MD5.
SHA-1: Descontinuado, ainda presente
O SHA-1 produz uma saída de 160 bits e tem o mesmo problema fundamental: ataques de colisão são provados. O ataque SHAttered do Google em 2017 gerou dois arquivos PDF diferentes com hashes SHA-1 idênticos, custo agora praticamente acessível para atacantes motivados.
Está oficialmente descontinuado para assinaturas digitais e certificados TLS. Você ainda encontrará no Git, onde é usado como identificador de conteúdo — o modelo de ameaça lá é diferente, e o Git está ativamente migrando para SHA-256.
A regra: Não use SHA-1 para novos trabalhos de segurança. Marque para migração em sistemas legados.
SHA-256 e SHA-512: O padrão atual
O SHA-256 (parte da família SHA-2) é o que você deve usar como padrão para a maioria das aplicações criptográficas. Saída de 256 bits, sem ataques práticos conhecidos, suportado em todas as linguagens e plataformas que você provavelmente trabalhará.
O SHA-512 usa um estado interno de 512 bits e produz uma saída de 512 bits. Em CPUs de 64 bits, é muitas vezes mais rápido do que o SHA-256 para entradas grandes devido à forma como processa blocos. Para a maioria dos trabalhos de camada de aplicação, o SHA-256 é suficiente. Se você estiver processando grandes volumes de dados ou precisar de margem extra na derivação de chaves, teste o SHA-512.
Quando usar: Verificações de integridade de arquivos, HMACs, assinaturas de certificados (com RSA/ECDSA), assinaturas de requisições de API, tokens JWT.
SHA-3: Arquitetura diferente, uso nicho
O SHA-3 (Keccak) foi selecionado pela NIST em 2015 especificamente como alternativa estrutural ao SHA-2. Enquanto o SHA-2 usa a construção Merkle-Damgård, o SHA-3 usa uma construção de "sponge". Se uma fraqueza fundamental for descoberta no design do SHA-2, o SHA-3 ficaria inalterado.
Produz tamanhos de saída iguais (SHA3-256, SHA3-512, etc.) e passa todas as análises atuais de segurança, mas é geralmente mais lento que o SHA-256 em software puro.
Quando usar: Sistemas de longa duração onde a independência arquitetural do SHA-2 importa — módulos de segurança embarcados, certos contextos governamentais ou de conformidade, ou qualquer lugar onde você esteja explicitamente protegendo contra futuras fraquezas do SHA-2. Para a maioria dos aplicativos web, isso é um excesso teórico.
BLAKE3: A escolha moderna de desempenho
O BLAKE3 não é um padrão da NIST (ainda), mas tem forte adoção: o Rust’s cargo, o formato de hash streaming Bao e uma crescente lista de ferramentas de segurança e armazenamento que o usam. Projeto para paralelismo, executa significativamente mais rápido que o SHA-256 em software enquanto mantém resistência às análises criptográficas atuais.
Quando usar: Checksums de alto desempenho, endereçamento de conteúdo, em qualquer lugar onde você controla os dois lados e precisa de velocidade sem sacrificar segurança. Evite seu uso onde o SHA-2 é explicitamente exigido por especificação — certificados X.509, tokens JWT e contextos semelhantes.
Comparação de algoritmos de hash
| Algoritmo | Status de segurança | Tamanho da saída | Velocidade (software) | Caso de uso |
|---|---|---|---|---|
| MD5 | Quebrado (colisões) | 128 bits | Muito rápido | Checksums não de segurança, deduplicação |
| SHA-1 | Quebrado (colisões) | 160-bit | Rápido | Apenas para sistemas legados; identificadores de conteúdo no Git |
| SHA-256 | Seguro | 256 bits | Rápido | Geral — escolha padrão |
| SHA-512 | Seguro | 512-bit | Mais rápido em 64 bits para grandes dados | Para alto desempenho ou margem extra |
| SHA-3 | Seguro | 224–512-bit | Mais lento em software | Sistemas de longa duração que precisam de independência do SHA-2 |
| BLAKE3 | Seguro | 256 bits | Muito rápido (em paralelo) | Endereçamento de conteúdo de alto desempenho |
Cálculo de SHA-256
Três maneiras rápidas de calcular um hash SHA-256:
Python:
import hashlib
data = b"hello world"
digest = hashlib.sha256(data).hexdigest()
print(digest)
# Output: b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576fba1d63e8d4d0b4b
Node.js:
const { createHash } = require('crypto');
const digest = createHash('sha256')
.update('hello world')
.digest('hex');
console.log(digest);
Bash:
echo -n "hello world" | sha256sum
Precisa hashar algo rapidamente sem escrever código? O Gerador de Hash suporta MD5, SHA-1, SHA-256, SHA-512 e mais — diretamente do seu navegador.
Guia de decisão
| Caso de uso | O que usar |
|---|---|
| Deduplicação / chaves de cache | MD5 ou SHA-256 |
| Integridade de arquivos (canal confiável) | O MD5 é suficiente |
| Integridade de arquivos (downloads, não confiável) | SHA-256 |
| Assinaturas digitais | SHA-256 ou SHA-512 |
| HMACs e autenticação de API | SHA-256 |
| Certificados TLS | SHA-256 |
| Armazenamento de senhas | bcrypt, Argon2 ou scrypt — não nenhum dos acima |
| Endereçamento de conteúdo de alto desempenho | BLAKE3 |
| Conformidade com padrões | SHA-256 (verifique os requisitos do padrão) |
Um ponto importante para ser explicitado: nenhum desses algoritmos deve ser usado diretamente para hashar senhas. Eles são todos rápidos por design, o que os torna úteis para ataques de força bruta. Use bcrypt, Argon2id ou scrypt — algoritmos projetados para serem deliberadamente lentos e intensivos em memória, exatamente porque o crack de senhas é um jogo adversarial.
A resposta curta
Para novos códigos: SHA-256 por padrão. Use SHA-512 se precisar de maior tamanho de saída ou estiver hashando grandes fluxos em hardware de 64 bits. Use BLAKE3 onde precisar de alto desempenho e controlar os dois lados. Use SHA-3 apenas se tiver uma razão específica de arquitetura para permanecer independente do SHA-2.
O MD5 é aceitável para impressão interna e deduplicação onde colisões não são um problema de segurança. Não é aceitável para qualquer coisa onde um atacante possa se beneficiar de falsificar um match.
Quando tiver dúvidas, use SHA-256. Já foi a resposta certa por uma década e continuará sendo por um futuro próximo.
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em Abr 20, 2026
