Gerador de hash SHA-256

Calcule o resumo SHA-256 de um texto, de bytes em hex ou de qualquer arquivo com a Web Crypto API do seu navegador. Cole uma soma de verificação publicada no campo Comparar com para verificar um download.

Todos os algoritmos

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Digite ou cole um texto, mude a entrada para Hex para informar bytes ou abra o arquivo que você quer verificar.
  2. Mantenha o SHA-256 selecionado e escolha a saída hex (minúsculas), HEX (maiúsculas) ou Base64.
  3. Cole a soma de verificação da página de download no campo Comparar com. Confere significa que o arquivo é idêntico.
  4. Copie o resultado ou copie o SHA-384, o SHA-512 ou outro resumo da tabela Todos os algoritmos.

O que é SHA-256?

O SHA-256 é o membro mais usado da família SHA-2, projetado pela NSA e padronizado pelo NIST em 2002 na FIPS 180-2. Hoje ele é especificado na FIPS 180-4, e a RFC 6234 traz os mesmos algoritmos com código de referência. O SHA-256 processa blocos de 512 bits em 64 rodadas de aritmética de 32 bits e gera um resumo de 256 bits: 64 caracteres hex ou 44 caracteres Base64. Não se conhece nenhum ataque prático de colisão ou de pré-imagem, e ele é a escolha padrão para:

  • certificados e handshakes TLS, e assinatura de código;
  • o Bitcoin, que aplica o SHA-256 duas vezes nos hashes de bloco, na prova de trabalho e nos IDs de transação (a soma de verificação dos endereços Base58Check vem do mesmo hash duplo);
  • arquivos de soma de verificação como SHA256SUMS, resumos de imagens de contêiner (sha256:...) e Subresource Integrity.

Como verificar um download

Abra o arquivo baixado e cole a soma de verificação divulgada pelo fornecedor no campo Comparar com. Maiúsculas e minúsculas não fazem diferença, e um valor em Base64 também funciona. Confere significa que o arquivo é, byte a byte, aquele a partir do qual a soma de verificação foi gerada. Isso não prova quem o criou, então obtenha a soma de verificação no site HTTPS do fornecedor ou em um arquivo SHA256SUMS assinado, e não no espelho de onde você baixou o arquivo.

No caso de texto, o hash é calculado sobre bytes, não sobre caracteres. Finais de linha do Windows (CRLF), uma marca de ordem de bytes (BOM) ou UTF-16 em vez de UTF-8 geram, cada um, um SHA-256 completamente diferente. Use a lista Codificação de texto ou a entrada em hex para calcular o hash exatamente dos bytes que o outro sistema usou.

Extensão de comprimento e senhas

Assim como o MD5, o SHA-1 e o SHA-512, o SHA-256 é vulnerável à extensão de comprimento: conhecendo SHA-256(secret + message) e o comprimento do segredo, um atacante consegue calcular um hash válido para essa mensagem seguida de preenchimento e de dados escolhidos por ele, sem conhecer o segredo. Para assinar ou autenticar dados com uma chave, use o HMAC-SHA256 do Gerador de HMAC em vez de calcular o hash da chave e da mensagem juntas.

A velocidade também é o motivo pelo qual um SHA-256 simples é a forma errada de armazenar senhas: quem obtiver os hashes pode testar palpites tão rápido quanto suas placas de vídeo calculam SHA-256, e senhas idênticas produzem hashes idênticos. Use Argon2id, scrypt, bcrypt ou PBKDF2-HMAC-SHA256 com um número alto de iterações; todos eles adicionam um salt.

SHA-256 na linha de comando e no código

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: verifica uma lista de arquivos
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 é o padrão)

# Python
hashlib.sha256(data).hexdigest()

// Node.js
crypto.createHash('sha256').update(data).digest('hex')

O valor de abc é o vetor de teste da norma; digite abc acima para ver o mesmo resultado. A tabela Todos os algoritmos também lista os valores SHA-384, SHA-512, SHA-1, MD5 e CRC da sua entrada.

Exemplos

Entrada (UTF-8)SHA-256
Hello, World!dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Base64.is63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800
你好670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

Perguntas frequentes

O SHA-256 pode ser descriptografado?

Não. O SHA-256 é um hash unidirecional, não uma criptografia. Os "descriptografadores" online só procuram hashes em tabelas de entradas conhecidas, então encontram senhas comuns e strings curtas, mas nada longo ou aleatório.

Por que meu SHA-256 não confere com a soma de verificação publicada?

Na maioria das vezes, o download está incompleto ou é de outra versão, ou você calculou o hash do nome do arquivo em vez do próprio arquivo. Carregue o arquivo em si com Abrir arquivo. Confira também se os dois valores usam o mesmo algoritmo: um valor hex de 128 caracteres vem de um hash de 512 bits, como o SHA-512, e não do SHA-256.

Como obter um hash SHA-256 em Base64?
Em Saída como, escolha Base64. O Subresource Integrity (valores sha256-, embora sha384- seja mais comum) e o cabeçalho HTTP Content-Digest usam essa forma. Hex e Base64 carregam os mesmos 32 bytes; converta de um para o outro com Base64 para Hex.
SHA-256 é o mesmo que SHA-2?

SHA-2 é uma família: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256. O SHA-256 é o membro mais comum. O SHA-3 (FIPS 202) é um projeto à parte, baseado no Keccak, e gera resultados diferentes.

Qual é o tamanho de um hash SHA-256?
32 bytes: 64 caracteres hex ou 44 caracteres Base64 terminando em =. O SHA3-256 e o BLAKE2s têm o mesmo tamanho; o Identificador de hash lista esses candidatos para um hash desconhecido.