Algoritmos de Hash Comparados: MD5, SHA-1, SHA-256 e Além
Funções hash criptográficas são fundamentais para a computação moderna. Elas verificam integridade de arquivos, protegem senhas, autenticam mensagens e sustentam a tecnologia blockchain. Mas nem todos os algoritmos de hash são iguais. Este guia compara os algoritmos mais utilizados e ajuda você a escolher o certo.
O Que É uma Função Hash?
Uma função hash recebe uma entrada de qualquer tamanho e produz uma saída de comprimento fixo (o "digest" ou "hash"). Boas funções hash têm três propriedades principais:
- Determinística: A mesma entrada sempre produz a mesma saída
- Efeito avalanche: Uma pequena mudança na entrada altera completamente a saída
- Unidirecional: É computacionalmente inviável reverter o hash para obter a entrada
Essas propriedades tornam hashes inestimáveis para verificação de integridade de dados e aplicações de segurança.
Comparação de Algoritmos
| Algoritmo | Tamanho da Saída | Velocidade | Status de Segurança | Usar Hoje? |
|---|---|---|---|---|
| MD5 | 128 bits | Muito rápido | Quebrado | Apenas checksums |
| SHA-1 | 160 bits | Rápido | Quebrado | Não |
| SHA-256 | 256 bits | Moderado | Seguro | Sim |
| SHA-384 | 384 bits | Moderado | Seguro | Sim |
| SHA-512 | 512 bits | Rápido em 64-bit | Seguro | Sim |
| SHA-3-256 | 256 bits | Moderado | Seguro | Sim |
| BLAKE2b | 256-512 bits | Muito rápido | Seguro | Sim |
| BLAKE3 | 256 bits | Extremamente rápido | Seguro | Sim |
MD5: O Padrão Quebrado
MD5 foi projetado por Ronald Rivest em 1991, produzindo um hash de 128 bits. Por mais de uma década, foi a escolha padrão para checksums e verificação de integridade.
Por que o MD5 está quebrado: Em 2004, pesquisadores demonstraram ataques práticos de colisão — encontrando duas entradas diferentes que produzem o mesmo hash. Em 2008, pesquisadores criaram um certificado CA falso usando colisões MD5. Hoje, colisões podem ser encontradas em segundos em hardware comum.
Quando o MD5 ainda é aceitável: Checksums não relacionados à segurança, como verificar downloads de arquivos onde adulteração não é uma preocupação. Para qualquer coisa relacionada à segurança, evite MD5 completamente.
SHA-1: Depreciado mas Persistente
SHA-1, projetado pela NSA e publicado em 1995, produz um hash de 160 bits. Substituiu o MD5 como padrão por muitos anos.
Por que o SHA-1 está quebrado: Google e CWI Amsterdam demonstraram uma colisão prática em 2017 (o ataque "SHAttered"). Principais navegadores abandonaram o suporte a certificados SHA-1 em 2017. O Git originalmente usava SHA-1 para hashes de commit e está migrando para SHA-256.
Status atual: Depreciado para todos os fins de segurança. Se você encontrar SHA-1 em sistemas legados, planeje uma migração para SHA-256 ou SHA-3.
SHA-256: O Padrão Atual
SHA-256 pertence à família SHA-2, projetada pela NSA e publicada em 2001. Produz um hash de 256 bits e é o algoritmo de hash seguro mais amplamente utilizado hoje.
Segurança: Nenhum ataque prático foi encontrado contra o SHA-256. Ele fornece 128 bits de resistência a colisão, considerado suficiente para o futuro previsível.
Performance: SHA-256 é mais lento que MD5 e SHA-1, o que é na verdade uma vantagem quando usado para hash de senhas (mais lento = mais difícil de forçar bruta). Em CPUs modernas com aceleração de hardware (instruções SHA-NI), a performance é excelente.
Onde o SHA-256 é usado:
- Certificados TLS/SSL
- Mineração de Bitcoin
- Assinaturas digitais
- Assinatura de código
- Verificação de integridade de arquivos
Gere hashes SHA-256 instantaneamente com nosso Gerador de Hash.
SHA-3: O Padrão Alternativo
SHA-3, baseado no algoritmo Keccak, venceu a competição de funções hash do NIST em 2012. Usa uma estrutura interna completamente diferente (construção esponja) do SHA-2.
Por que o SHA-3 importa: Se um avanço matemático comprometer o SHA-2, o SHA-3 fornece uma alternativa completamente independente. Seu design diferente significa que uma vulnerabilidade no SHA-2 provavelmente não afetará o SHA-3.
Adoção: A adoção do SHA-3 tem sido mais lenta que o esperado porque o SHA-2 permanece intacto. É cada vez mais usado em aplicações blockchain e como hash secundário em arquiteturas de defesa em profundidade.
BLAKE2 e BLAKE3: Campeões de Velocidade
BLAKE2 (2012) e BLAKE3 (2020) são funções hash modernas projetadas para performance sem comprometer a segurança.
Destaques do BLAKE3:
- Mais rápido que MD5 em CPUs modernas
- Inerentemente paralelo (escala com núcleos de CPU)
- Saída de 256 bits
- Suporte integrado para hashing com chave e derivação de chave
Para aplicações onde velocidade é crítica e você não está restrito a padrões NIST, BLAKE3 é uma excelente escolha.
Escolhendo o Algoritmo Certo
Para Hash de Senhas
Não use nenhum dos acima diretamente. Use funções dedicadas de hash de senhas: Argon2id (vencedor da Competição de Hash de Senhas), bcrypt ou scrypt. Estas são intencionalmente lentas e exigentes em memória para resistir a ataques de força bruta. Saiba mais em nosso guia de segurança de senhas.
Para Integridade de Arquivos
SHA-256 é a escolha padrão. Se performance é crítica e você controla ambos os endpoints, BLAKE3 é mais rápido mantendo a segurança.
Para Assinaturas Digitais
SHA-256 ou SHA-384, dependendo do nível de segurança necessário. Aplicações governamentais e financeiras frequentemente exigem SHA-384 ou SHA-512.
Para Checksums (Não-Segurança)
CRC32 ou xxHash para velocidade quando segurança não é uma preocupação. Se você precisa de garantia criptográfica, SHA-256 é o mínimo.
Para Aplicações Blockchain
SHA-256 (Bitcoin), Keccak-256 (Ethereum) ou BLAKE2b (Zcash). A escolha frequentemente depende dos requisitos específicos do protocolo.
Colisões de Hash Explicadas
Uma colisão ocorre quando duas entradas diferentes produzem a mesma saída hash. O paradoxo do aniversário significa que colisões são encontradas muito mais rápido do que você esperaria:
- Para um hash de 128 bits (MD5), uma colisão requer aproximadamente 2^64 operações
- Para um hash de 256 bits (SHA-256), uma colisão requer aproximadamente 2^128 operações
Essa diferença exponencial é o motivo pelo qual dobrar o comprimento do hash fornece muito mais que o dobro da segurança.
Exemplo Prático
Veja como a mesma entrada aparece em diferentes algoritmos:
Input: "Hello, World!"
MD5: 65a8e27d8879283831b664bd8b7f0ad4
SHA-1: 0a0a9f2a6772942557ab5355d76af442f8f65e01
SHA-256: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Experimente gerar esses você mesmo com nosso Gerador de Hash. Todo o processamento acontece no seu navegador — seus dados permanecem privados.
FAQ
O SHA-256 é resistente a computação quântica?
O SHA-256 é parcialmente resistente a ataques quânticos. O algoritmo de Grover poderia reduzir a segurança efetiva de 256 bits para 128 bits para ataques de pré-imagem, o que ainda é considerado seguro. Para resistência a colisão, computadores quânticos oferecem menos vantagem. Padrões de criptografia pós-quântica focam mais em criptografia e assinaturas do que em funções hash.
Devo usar SHA-512 em vez de SHA-256 para segurança extra?
Para a maioria das aplicações, SHA-256 fornece segurança suficiente. SHA-512 é na verdade mais rápido em processadores de 64 bits devido à sua estrutura interna, então pode ser uma boa escolha por razões de performance. O comprimento extra do hash fornece resistência adicional a colisão, mas raramente é o fator decisivo.
Recursos Relacionados
- Gerador de Hash — Gere hashes MD5, SHA-1, SHA-256 e SHA-512 online
- Guia de Segurança de Senhas — Boas práticas para criar e armazenar senhas
- JWT Tokens Explicados — Como algoritmos de hash protegem JSON Web Tokens