alltools.one
Security
2025-07-10
9 min
alltools.one Team
HashSHA-256MD5CryptographySecurity

Algoritmos de Hash Comparados: MD5, SHA-1, SHA-256 e Mais

As funções de hash criptográficas são fundamentais para a computação moderna. Verificam a integridade de ficheiros, protegem palavras-passe, 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-o a escolher o mais adequado.

O Que É uma Função de Hash?

Uma função de hash recebe uma entrada de qualquer tamanho e produz uma saída de comprimento fixo (o "digest" ou "hash"). As boas funções de hash têm três propriedades fundamentais:

  1. Determinística: A mesma entrada produz sempre a mesma saída
  2. Efeito avalanche: Uma pequena alteração na entrada altera completamente a saída
  3. Unidirecional: É computacionalmente inviável reverter o hash para obter a entrada original

Estas propriedades tornam os hashes inestimáveis para a verificação de integridade de dados e aplicações de segurança.

Comparação de Algoritmos

AlgoritmoTamanho da SaídaVelocidadeEstado de SegurançaUtilizar Hoje?
MD5128 bitsMuito rápidoComprometidoApenas checksums
SHA-1160 bitsRápidoComprometidoNão
SHA-256256 bitsModeradoSeguroSim
SHA-384384 bitsModeradoSeguroSim
SHA-512512 bitsRápido em 64-bitSeguroSim
SHA-3-256256 bitsModeradoSeguroSim
BLAKE2b256-512 bitsMuito rápidoSeguroSim
BLAKE3256 bitsExtremamente rápidoSeguroSim

MD5: O Padrão Comprometido

O MD5 foi concebido por Ronald Rivest em 1991, produzindo um hash de 128 bits. Durante mais de uma década, foi a escolha padrão para checksums e verificação de integridade.

Porque é que o MD5 está comprometido: Em 2004, investigadores demonstraram ataques de colisão práticos — encontrar duas entradas diferentes que produzem o mesmo hash. Em 2008, investigadores criaram um certificado CA fraudulento utilizando colisões MD5. Atualmente, colisões podem ser encontradas em segundos em hardware de consumo.

Quando o MD5 ainda é aceitável: Checksums não relacionados com segurança, como verificar transferências de ficheiros onde a adulteração não é uma preocupação. Para qualquer coisa relacionada com segurança, evite o MD5 completamente.

SHA-1: Descontinuado mas Persistente

O SHA-1, concebido pela NSA e publicado em 1995, produz um hash de 160 bits. Substituiu o MD5 como padrão durante muitos anos.

Porque é que o SHA-1 está comprometido: A Google e o CWI Amsterdam demonstraram uma colisão prática em 2017 (o ataque "SHAttered"). Os principais navegadores abandonaram o suporte a certificados SHA-1 em 2017. O Git utilizava originalmente SHA-1 para hashes de commits e está a transitar para SHA-256.

Estado atual: Descontinuado para todos os fins de segurança. Se encontrar SHA-1 em sistemas legados, planeie uma migração para SHA-256 ou SHA-3.

SHA-256: O Padrão Atual

O SHA-256 pertence à família SHA-2, concebida pela NSA e publicada em 2001. Produz um hash de 256 bits e é o algoritmo de hash seguro mais utilizado atualmente.

Segurança: Não foram encontrados ataques práticos contra o SHA-256. Proporciona 128 bits de resistência a colisões, o que é considerado suficiente para o futuro previsível.

Desempenho: O SHA-256 é mais lento que o MD5 e o SHA-1, o que é na verdade uma vantagem quando utilizado para hashing de palavras-passe (mais lento = mais difícil de forçar por força bruta). Em CPUs modernos com aceleração por hardware (instruções SHA-NI), o desempenho é excelente.

Onde o SHA-256 é utilizado:

  • Certificados TLS/SSL
  • Mineração de Bitcoin
  • Assinaturas digitais
  • Assinatura de código
  • Verificação de integridade de ficheiros

Gere hashes SHA-256 instantaneamente com o nosso Gerador de Hash.

SHA-3: O Padrão Alternativo

O SHA-3, baseado no algoritmo Keccak, venceu a competição de funções de hash do NIST em 2012. Utiliza uma estrutura interna completamente diferente (construção esponja) do SHA-2.

Porque é que o SHA-3 é importante: Se um avanço matemático comprometer o SHA-2, o SHA-3 fornece uma alternativa completamente independente. O seu design diferente significa que uma vulnerabilidade no SHA-2 é improvável de afetar o SHA-3.

Adoção: A adoção do SHA-3 tem sido mais lenta do que o esperado porque o SHA-2 permanece inviolado. É cada vez mais utilizado em aplicações blockchain e como hash secundário em arquiteturas de defesa em profundidade.

BLAKE2 e BLAKE3: Campeões de Velocidade

O BLAKE2 (2012) e o BLAKE3 (2020) são funções de hash modernas concebidas para desempenho sem comprometer a segurança.

Destaques do BLAKE3:

  • Mais rápido que o MD5 em CPUs modernos
  • Inerentemente paralelo (escala com núcleos do CPU)
  • Saída de 256 bits
  • Suporte integrado para hashing com chave e derivação de chaves

Para aplicações onde a velocidade é crítica e não está limitado aos padrões NIST, o BLAKE3 é uma excelente escolha.

Escolher o Algoritmo Certo

Para Hashing de Palavras-passe

Não utilize nenhum dos algoritmos acima diretamente. Utilize funções dedicadas de hashing de palavras-passe: Argon2id (vencedor da Password Hashing Competition), bcrypt ou scrypt. Estas são intencionalmente lentas e exigentes em memória para resistir a ataques de força bruta. Saiba mais no nosso guia de segurança de palavras-passe.

Para Integridade de Ficheiros

O SHA-256 é a escolha padrão. Se o desempenho for crítico e controlar ambos os extremos, o 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 Relacionados com Segurança)

CRC32 ou xxHash para velocidade quando a segurança não é uma preocupação. Se precisar de uma garantia criptográfica, o SHA-256 é o mínimo.

Para Aplicações Blockchain

SHA-256 (Bitcoin), Keccak-256 (Ethereum) ou BLAKE2b (Zcash). A escolha depende frequentemente dos requisitos específicos do protocolo.

Colisões de Hash Explicadas

Uma colisão ocorre quando duas entradas diferentes produzem a mesma saída de hash. O paradoxo do aniversário significa que as colisões são encontradas muito mais rapidamente do que se poderia esperar:

  • 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

Esta diferença exponencial é a razão pela qual duplicar o comprimento do hash fornece muito mais do que o dobro da segurança.

Exemplo Prático

Eis como a mesma entrada aparece em diferentes algoritmos:

Input: "Hello, World!"
MD5:    65a8e27d8879283831b664bd8b7f0ad4
SHA-1:  0a0a9f2a6772942557ab5355d76af442f8f65e01
SHA-256: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f

Experimente gerar estes você mesmo com o nosso Gerador de Hash. Todo o processamento acontece no seu navegador — os 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ões, os computadores quânticos oferecem menos vantagem. Os padrões de criptografia pós-quântica focam-se mais na encriptação e assinaturas do que nas funções de hash.

Devo utilizar SHA-512 em vez de SHA-256 para segurança extra?

Para a maioria das aplicações, o SHA-256 proporciona segurança suficiente. O SHA-512 é na verdade mais rápido em processadores de 64 bits devido à sua estrutura interna, pelo que pode ser uma boa escolha por razões de desempenho. O comprimento de hash extra proporciona resistência adicional a colisões, mas raramente é o fator decisivo.

Recursos Relacionados

Published on 2025-07-10
Hash Algorithms Compared: MD5, SHA-1, SHA-256, and Beyond | alltools.one