SHA-1 vs SHA-256 vs SHA-512: Escolhendo o Algoritmo Hash Correto

16 Jun 2026 664 words

SHA-1 vs SHA-256 vs SHA-512

SHA-1, SHA-256 e SHA-512 são todos membros da família Secure Hash Algorithm, mas diferem significativamente em segurança, tamanho de saída e desempenho. Escolher o correto depende dos seus requisitos de segurança, restrições de desempenho e necessidades de compatibilidade.

Comparação Rápida

Característica SHA-1 SHA-256 SHA-512
Tamanho da saída 160 bits (20 bytes) 256 bits (32 bytes) 512 bits (64 bytes)
Nível de segurança 80 bits (quebrado) 128 bits (seguro) 256 bits (seguro)
Rodadas 80 64 80
Tamanho da palavra 32 bits 32 bits 64 bits
Tamanho do bloco 512 bits 512 bits 1024 bits
Status Obsoleto Recomendado Recomendado

Análise de Segurança

SHA-1 produz um hash de 160 bits, dando-lhe uma resistência a colisões de 2^80 operações pelo paradoxo do aniversário. Em 2017, a Google demonstrou o ataque SHAttered, produzindo a primeira colisão SHA-1 prática usando aproximadamente 2^63 operações. Isso provou que SHA-1 não oferece mais segurança adequada para qualquer propósito onde a resistência a colisões seja importante.

SHA-256 fornece resistência a colisões de 128 bits. Em 2026, nenhum ataque prático reduz a segurança do SHA-256 abaixo de sua força de projeto. É aprovado pelo NIST para uso em aplicações governamentais dos EUA e é o padrão para certificados SSL/TLS, blockchain e assinaturas digitais.

SHA-512 fornece resistência a colisões de 256 bits. É ainda mais forte que SHA-256, mas oferece mais segurança do que a maioria das aplicações precisa. A força extra vem com um custo de desempenho em sistemas de 32 bits, mas em sistemas de 64 bits, SHA-512 pode ser mais rápido que SHA-256.

Onde SHA-1 Ainda é Encontrado

Apesar de estar obsoleto, SHA-1 ainda aparece em sistemas legados:

  • Git usa SHA-1 para hashes de commit (embora o Git tenha adicionado suporte a SHA-256)
  • Assinaturas digitais antigas assinadas com certificados SHA-1
  • Somas de verificação de arquivos legados distribuídas antes da descontinuação
  • Alguns sistemas de controle de versão e ferramentas de backup

Se você encontrar SHA-1 em um sistema novo, migre para SHA-256 imediatamente.

Considerações de Desempenho

Em processadores de 32 bits, SHA-256 é mais rápido que SHA-512 porque SHA-512 opera em palavras de 64 bits, exigindo instruções extras. Em processadores de 64 bits com aceleração de hardware (extensões SHA), SHA-256 e SHA-512 ambos têm bom desempenho, com SHA-256 tipicamente sendo ligeiramente mais rápido.

Para hash de arquivos grandes, a diferença é mensurável, mas raramente significativa para uso típico. Um arquivo que leva 1 segundo para hash com SHA-256 pode levar 0,7 segundos com SHA-1 ou 1,3 segundos com SHA-512. Para a maioria das aplicações, os benefícios de segurança do SHA-256 superam em muito a diferença menor de desempenho.

Exemplos de Código

// PHP
echo hash('sha1', 'hello');   // aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
echo hash('sha256', 'hello'); // 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
echo hash('sha512', 'hello'); // 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
import hashlib

print(hashlib.sha1(b'hello').hexdigest())
print(hashlib.sha256(b'hello').hexdigest())
print(hashlib.sha512(b'hello').hexdigest())
// Node.js
const crypto = require('crypto');
console.log(crypto.createHash('sha1').update('hello').digest('hex'));
console.log(crypto.createHash('sha256').update('hello').digest('hex'));
console.log(crypto.createHash('sha512').update('hello').digest('hex'));

Recomendação

Caso de Uso Recomendação
Certificados SSL/TLS SHA-256
Verificação de integridade de arquivos SHA-256 ou SHA-512
Assinaturas digitais SHA-256
Hash de senhas bcrypt ou argon2 (não SHA)
Blockchain / cripto SHA-256
Arquivamento de longo prazo SHA-512
Compatibilidade legada Migrar para SHA-256

Ferramentas Online

Use as ferramentas Gerador SHA-1, Gerador SHA-256 e Gerador SHA-512 para calcular hashes instantaneamente. O Gerador de Hash Múltiplo gera todos os tipos de hash de uma vez para comparação.

Conclusão

SHA-1 está quebrado e não deve ser usado. SHA-256 é o padrão recomendado para a maioria das aplicações. SHA-512 fornece segurança extra para ambientes de alto risco. Use SHA-256 como padrão, a menos que você tenha um motivo específico para escolher outra opção.


About this article

Compare os algoritmos hash SHA-1, SHA-256 e SHA-512 para entender seus níveis de segurança, compensações de desempenho e quando usar cada um.


Related Articles


Related Tools

Help2Code Logo
Menu