Por que dois hashes SHA-256 são diferentes e como verificar um arquivo

Dois cálculos SHA-256 feitos com os mesmos bytes sempre produzem o mesmo hash. Se os valores realmente diferirem, confira primeiro o arquivo selecionado, o algoritmo e os caracteres invisíveis. Um download incompleto, um espaço ou uma quebra de linha geralmente basta para mudar o resultado. Antes de usar um arquivo baixado, compare o hash completo com o publicado por uma fonte confiável.

Escolher entre arquivo e texto

Para conferir um PDF, um arquivo compactado ou um programa baixado, use a calculadora de hash de arquivo. Ela calcula o SHA-256 dos bytes do arquivo selecionado. Não copie o conteúdo para uma caixa de texto: isso pode mudar a codificação ou as quebras de linha.

Para comparar uma sequência de caracteres, escolha a ferramenta para calcular hash SHA-256 de texto. Ela codifica o texto digitado em UTF-8 e depois calcula seu hash, incluindo espaços e quebras de linha. Portanto, um arquivo de texto e o texto exibido na tela nem sempre representam os mesmos bytes.

Verificar um download passo a passo

  1. Encontre o hash no site oficial do fornecedor, para a versão e o arquivo corretos. Um arquivo ZIP e o documento que ele contém têm hashes diferentes.
  2. Confira se a referência usa SHA-256. Um valor SHA-256 em hexadecimal tem 64 caracteres. O padrão define uma saída de 256 bits. Referência do NIST.
  3. Na calculadora de arquivo, clique em “Escolher arquivo”. Confira o nome e o tamanho exibidos e clique em “Calcular SHA-256”.
  4. Use “Copiar hash” e compare os 64 caracteres com a referência. O botão copia somente o hash; a comparação ainda precisa ser feita. As letras hexadecimais A–F e a–f representam os mesmos valores.
  5. Se houver diferença, não execute o arquivo. Confira a versão esperada e baixe-o novamente da fonte oficial. Se a diferença persistir, peça uma confirmação ao fornecedor.

Um exemplo com apenas uma quebra de linha

Na ferramenta de texto, digite exatamente abc, sem aspas, espaços ou quebras de linha. Clique em “Calcular hash”. Os três bytes UTF-8 são 61 62 63 em hexadecimal. O resultado é:

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

Em seguida, posicione o cursor depois do c, pressione Enter uma vez e refaça o cálculo. Com essa quebra de linha LF, a entrada passa a ter quatro bytes: 61 62 63 0a. O resultado é:

edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb

Para reproduzir esses resultados com arquivos, salve o primeiro em UTF-8 sem BOM nem quebra de linha no final e o segundo com apenas um LF no final. A calculadora deve mostrar 3 e 4 bytes, respectivamente. Alguns editores acrescentam uma quebra de linha automaticamente: confira essa configuração.

Diferenças que não aparecem na tela

Um espaço depois de uma palavra, uma tabulação ou uma linha vazia fazem parte do conteúdo. As quebras de linha LF e CRLF usam bytes diferentes. Um arquivo UTF-8 com BOM também tem bytes extras no início em comparação com o mesmo texto salvo sem BOM.

Os acentos também podem surpreender: um é e um e seguido de um acento combinante podem parecer iguais na tela, mas ter representações diferentes. A ferramenta não os normaliza automaticamente. O inspetor de codificação UTF-8 ajuda a examinar o BOM e as quebras de linha de arquivos de texto de até 5 MiB. A codificação sugerida precisa ser confirmada; sem BOM, nem sempre é possível identificá-la. Não converta o arquivo antes de verificar seu hash original.

O que a verificação permite concluir

Uma correspondência SHA-256 oferece uma verificação sólida de integridade, sem ser uma garantia matemática de unicidade: as funções de hash são projetadas para dificultar a descoberta de colisões. RFC 6234.

Ela não prova que o arquivo é inofensivo nem que seu autor é quem afirma ser. Se um invasor fornecer tanto um arquivo alterado quanto seu hash, os dois vão corresponder. A procedência da referência continua sendo essencial. Uma assinatura digital verificada com uma chave confiável oferece uma verificação separada de autenticidade.

Lista de verificação antes de concluir

  • Mesmo arquivo, mesma versão e mesmo algoritmo
  • Referência obtida de uma fonte confiável
  • Hash completo comparado, sem confundir maiúsculas e minúsculas
  • Nenhuma alteração, conversão ou nova exportação entre os cálculos

Perguntas frequentes

Renomear um arquivo muda seu hash?

Não: o nome não entra no cálculo. Por outro lado, alterar metadados armazenados dentro do arquivo muda seus bytes e, geralmente, seu hash.

Posso recuperar o arquivo a partir do SHA-256?

SHA-256 não é criptografia e não tem chave de descriptografia. Um hash serve para comparar dados, não para recuperá-los nem para esconder um segredo previsível.

Por que um arquivo grande não funciona?

O cálculo continua no navegador, mas o arquivo inteiro é carregado na memória. A API usada não processa a entrada em fluxo; por isso, o limite prático depende do dispositivo e do navegador. A página e seus recursos, porém, são carregados do site. Documentação da MDN.