Glossary
SHA-256
O padrão moderno de função de hash
By Buğra SözeriPublished Updated
SHA-256 é uma função de hash criptográfico publicada pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST) em 2001 como parte da família SHA-2 (FIPS PUB 180-4). Aceita entrada de qualquer comprimento e produz uma saída de comprimento fixo de 256 bits (32 bytes, 64 caracteres hexadecimais).
A função é determinística (a mesma entrada sempre produz a mesma saída), unidirecional (computacionalmente inviável derivar a entrada da saída) e resistente a colisões (computacionalmente inviável encontrar duas entradas diferentes produzindo a mesma saída). Até 2026, nenhum ataque prático à resistência a colisões do SHA-256 foi demonstrado.
Onde o SHA-256 aparece: assinaturas de certificados TLS, assinaturas JWT (HS256, RS256, ES256 — o 256 é SHA-256), hashes de bloco do Bitcoin (aplicado duplamente), autenticação de mensagens HMAC-SHA256, o próximo formato de objeto SHA-256 do Git e basicamente toda pilha moderna de verificação de integridade.
Compute hashes SHA-256 com nosso gerador de hash, que usa a Web Crypto API do navegador (crypto.subtle.digest) por baixo dos panos.
Para o que o SHA-256 não foi construído — e o erro com senhas: o SHA-256 é rápido por design. Uma GPU moderna computa bilhões de hashes SHA-256 por segundo, o que é excelente para verificar a integridade de arquivos, mas um desastre para fazer hash de senhas. Um atacante que rouba um banco de dados de hashes de senha SHA-256 simples pode recuperar a maioria das senhas fracas em horas por força bruta. O hash de senhas requer uma função deliberadamente lenta com um salt por usuário — bcrypt, scrypt, Argon2 — que ajusta o fator de custo para que cada hash leve ~100 ms em vez de ~100 ns. Armazenar senhas de usuários como SHA256(senha) simples é um dos erros mais consistentemente explorados em divulgações de violações. Se você não se lembrar de mais nada: SHA-256 para integridade, Argon2id para senhas.
SHA-256 duplo, extensão de comprimento e a correção com HMAC: o SHA-256 herda a construção Merkle-Damgård usada por SHA-1 e MD5, o que significa que é vulnerável a ataques de extensão de comprimento — dado H(segredo || mensagem), um atacante pode computar H(segredo || mensagem || preenchimento || extra) sem conhecer o segredo. Esse é o motivo pelo qual as APIs ingênuas de “assinar o corpo com SHA256(chave + corpo)” dos anos 2010 foram todas substituídas por HMAC-SHA256, que envolve a construção com dois hashes com chave e não é extensível por comprimento. O “SHA-256 duplo” do Bitcoin (SHA256(SHA256(x))) é uma mitigação diferente contra a mesma família de ataques e não tem relação com HMAC. Relacionados: JWS, assinatura, SHA-256 vs MD5. Referência: NIST FIPS 180-4 — Padrão de Hash Seguro.
Exemplo prático
O hash SHA-256 da string vazia é a constante bem conhecida e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. O hash do byte único "a" é ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb. Mude um bit — digamos para "b" — e o hash se torna 3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d, sem aparente relação com a saída anterior. Essa é a propriedade de “avalanche” em ação: cada bit de entrada afeta aproximadamente metade dos bits de saída. Para verificar um download de 1 GB, você compara seu SHA-256 (uma string hexadecimal de 64 caracteres que o fornecedor publica) com o calculado localmente. Se eles coincidirem, o arquivo é idêntico bit a bit com probabilidade indistinguível da certeza (a chance de uma colisão sendo 2⁻¹²⁸, menor do que escolher o mesmo átomo do universo observável aleatoriamente).
Quando e por que isso importa
O SHA-256 é o primitivo de integridade para quase tudo em que você confia na internet moderna. As cadeias de certificados TLS são assinadas com RSA/ECDSA sobre digests SHA-256; os JWTs usam HMAC-SHA256 por padrão; digests de imagens Docker, IDs de objeto de próxima geração do Git, assinatura de código da Apple e toda a blockchain do Bitcoin passam pelo SHA-256. Três modos de falha merecem atenção: substituir SHA-1 ou MD5 (ambos quebrados para resistência a colisões — colisões SHA-1 foram demonstradas em 2017), usar SHA-256 diretamente para senhas em vez de Argon2id (veja acima) e confiar em SHA-256 truncado abaixo de 128 bits como resistente a colisões (o limite de aniversário em um prefixo de 96 bits é apenas 2⁴⁸ — ao alcance de um atacante determinado). Referência: NIST CSRC — Funções de Hash.
Experimente a calculadora
Compute um digest SHA-256 (ou SHA-1, MD5) para qualquer entrada de texto localmente no seu navegador.
Abrir a ferramenta de hash →Frequently asked questions
- O que é SHA-256?
- SHA-256 é uma função de hash criptográfico da família SHA-2 que produz um digest fixo de 256 bits (32 bytes) a partir de qualquer entrada. É determinístico, unidirecional (resistente à pré-imagem) e resistente a colisões: alterar um único bit na entrada muda completamente a saída.
- Como o SHA-256 é usado na prática?
- O SHA-256 é usado para verificar a integridade de arquivos (gerenciadores de pacotes comparam hashes de download), em impressões digitais de certificados TLS, como função de proof-of-work na mineração de Bitcoin e dentro de HMAC para assinatura de requisições de API. O Git usa uma variante de SHA-256 para identificar commits e blobs.
- Qual é a diferença entre SHA-256 e MD5?
- O MD5 produz um digest de 128 bits e é criptograficamente quebrado — colisões podem ser geradas em segundos em hardware comum. O SHA-256 produz um digest de 256 bits, não tem ataques de colisão práticos conhecidos e é o padrão atual recomendado para verificação de integridade e assinaturas digitais.
Related
Published May 14, 2026 · Last reviewed May 31, 2026