SHA-256 vs SHA-512: que função de hash escolher?
SHA-256 e SHA-512 pertencem ambas à família SHA-2, concebida pela NSA e normalizada pelo NIST. Produzem um resumo de tamanho fixo a partir de qualquer dado e são hoje consideradas seguras. A diferença reside no tamanho do resumo, no desempenho consoante a arquitetura e em alguns pormenores de segurança. Eis qual escolher e porquê.
A família SHA-2
SHA-2 reúne várias variantes (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) que partilham a mesma estrutura mas diferem no tamanho das palavras e do resumo. O número indica o tamanho do resumo em bits: SHA-256 produz 256 bits (64 caracteres hexadecimais), SHA-512 produz 512 (128 caracteres).
Pode calcular estes resumos com o nosso gerador de hash, ou reconhecer um algoritmo a partir de um resumo com o identificador de hash. Não confundir com o MD5, obsoleto para a segurança (consulte o nosso comparativo MD5 vs SHA-256).
SHA-256
SHA-256 trabalha sobre palavras de 32 bits e produz um resumo de 256 bits. É a função de hash mais difundida no mundo: certificados TLS, assinaturas da Bitcoin, verificação de integridade de ficheiros, git. O seu resumo mais curto torna-o prático de armazenar, mostrar e transmitir.
- Resumo: 256 bits, 64 caracteres hexadecimais
- Palavras: 32 bits, ótimo nas plataformas de 32 bits e no embarcado
- Adoção: a mais ampla, suporte universal
SHA-512
SHA-512 trabalha sobre palavras de 64 bits e produz um resumo de 512 bits. De forma contraintuitiva, num processador de 64 bits moderno, é muitas vezes mais rápida do que SHA-256 para grandes volumes, porque processa mais dados por ronda. O seu resumo mais longo oferece também uma margem de segurança superior.
- Resumo: 512 bits, 128 caracteres hexadecimais
- Palavras: 64 bits, ótimo nas arquiteturas de 64 bits
- Resistência nativa: SHA-512 não é vulnerável ao ataque por extensão de comprimento quando se utilizam as suas variantes truncadas (SHA-512/256)
Tabela comparativa
| Critério | SHA-256 | SHA-512 |
|---|---|---|
| Tamanho do resumo | 256 bits (64 hex) | 512 bits (128 hex) |
| Tamanho das palavras | 32 bits | 64 bits |
| Velocidade em CPU 64 bits | Boa | Muitas vezes superior |
| Velocidade em 32 bits / embarcado | Superior | Mais lenta |
| Margem de segurança | Muito elevada | Ainda superior |
| Extensão de comprimento | Vulnerável | Vulnerável (exceto variantes truncadas) |
| Adoção | Universal | Ampla |
Desempenho
O desempenho depende da arquitetura. Num servidor ou num portátil de 64 bits, SHA-512 pode superar SHA-256 em 20 a 50 % em ficheiros grandes, porque processa blocos maiores por iteração. Num microcontrolador de 32 bits ou num ambiente restrito, SHA-256 recupera a vantagem.
Na prática, para pequenas entradas (uma palavra-passe, um identificador), a diferença é negligenciável. Só se torna mensurável em volumes importantes ou débitos elevados.
Quando escolher uma ou outra
Escolher SHA-256 quando
- Procura a compatibilidade máxima e um formato compacto
- Visa o embarcado, a IoT ou plataformas de 32 bits
- Verifica a integridade de ficheiros ou assina certificados
- Um resumo curto facilita a apresentação e o armazenamento
Escolher SHA-512 quando
- Faz hash de grandes volumes em servidores de 64 bits
- Pretende a margem de segurança mais ampla possível
- Utiliza SHA-512/256 para resistir à extensão de comprimento mantendo 256 bits
Importante: nenhuma das duas é adequada para o hash de palavras-passe. Para isso, utilize bcrypt ou Argon2, concebidos para serem lentos e salgados.
Recomendação
Para um uso geral, SHA-256 é a escolha por omissão: universalmente suportado, compacto, amplamente seguro. Opte por SHA-512 se fizer hash de grandes volumes em hardware de 64 bits ou se pretender uma margem de segurança adicional. E para armazenar palavras-passe, recorra a uma função dedicada como o Argon2id, nunca ao SHA-2 sozinho.
Perguntas frequentes
SHA-512 é mais seguro do que SHA-256?
SHA-512 oferece uma margem de segurança teórica superior graças ao seu resumo mais longo, mas SHA-256 já está amplamente fora do alcance dos ataques atuais. Para a quase totalidade dos usos, ambos são considerados seguros.
Porque pode SHA-512 ser mais rápido do que SHA-256?
Porque manipula palavras de 64 bits e processa blocos maiores por ronda. Num processador de 64 bits nativo, isso compensa o custo adicional e torna-o muitas vezes mais rápido em grandes volumes. Em 32 bits, é o inverso.
Posso fazer hash de palavras-passe com SHA-256 ou SHA-512?
Não, seria um erro. Estas funções são rápidas, portanto fáceis de atacar por força bruta. Utilize bcrypt ou Argon2id, que são propositadamente lentos e integram um sal.
O que é o SHA-512/256?
É SHA-512 cujo resumo é truncado a 256 bits, com valores de inicialização diferentes. Obtém-se um resumo de 256 bits, a velocidade do SHA-512 em 64 bits e uma resistência nativa ao ataque por extensão de comprimento.