SHA-256: o padrão atual, e por que "mais bits" não é toda a história
SHA-256 produz um hash de 256 bits (64 caracteres hexadecimais), parte da família SHA-2 publicada pelo NIST em 2001 — projetada com uma estrutura interna diferente do SHA-1 (mais rodadas de processamento, operações adicionais de mistura de bits), não apenas "SHA-1 com saída maior". É essa diferença estrutural, mais do que o tamanho do hash em si, que faz o SHA-256 permanecer sem ataque de colisão prático conhecido até hoje, mais de duas décadas depois de sua publicação — diferente do MD5 e do SHA-1, que caíram apesar de terem sido considerados seguros por período comparável.
Onde SHA-256 está em uso real, além de checksum
SHA-256 é o algoritmo de hash usado no protocolo de mineração do
Bitcoin (Proof of Work), na verificação de integridade de certificados
TLS modernos, na assinatura de pacotes de software de gerenciadores
como o apt e o npm, e como base de derivação
de chave em vários protocolos criptográficos (incluindo a
Criptografia AES deste site,
cuja derivação de chave via PBKDF2 usa especificamente SHA-256). Essa
ubiquidade em contextos de alta exigência de segurança — não só
checksum de arquivo — é o indicador prático mais forte de que o
algoritmo resiste ao escrutínio contínuo da comunidade criptográfica
há mais tempo do que qualquer alternativa mais recente conseguiu
acumular.
Por que hash de senha ainda não deveria ser só SHA-256
Apesar de SHA-256 ser criptograficamente robusto contra colisão, usá-lo diretamente para hash de senha (sem uma etapa adicional) ainda é desaconselhado — pelo mesmo motivo que MD5 é rápido demais para esse uso: hardware moderno (GPUs, ASICs especializados) calcula bilhões de hashes SHA-256 por segundo, tornando ataques de força bruta contra senhas comuns viáveis em tempo razoável. Funções de derivação de chave deliberadamente lentas — PBKDF2 (usado neste site), bcrypt, scrypt ou Argon2 — existem precisamente para neutralizar essa vantagem de velocidade de hardware, algo que SHA-256 puro, por ser rápido por design, não oferece.