Por que dois hashes SHA-256 são diferentes e como verificar um ficheiro
Dois cálculos SHA-256 feitos com os mesmos bytes sempre produzem o mesmo hash. Se os valores realmente diferirem, verifique primeiro o ficheiro 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 ficheiro descarregado, compare o hash completo com o publicado por uma fonte confiável.
Escolher entre ficheiro e texto
Para verificar um PDF, um ficheiro compactado ou um programa descarregado, use a calculadora de hash de ficheiro. Ela calcula o SHA-256 dos bytes do ficheiro 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 introduzido em UTF-8 e depois calcula o seu hash, incluindo espaços e quebras de linha. Portanto, um ficheiro de texto e o texto apresentado no ecrã nem sempre representam os mesmos bytes.
Verificar um download passo a passo
- Encontre o hash no site oficial do fornecedor, para a versão e o ficheiro corretos. Um ficheiro ZIP e o documento que ele contém têm hashes diferentes.
- Verifique 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.
- Na calculadora de ficheiro, clique em “Escolher ficheiro”. Verifique o nome e o tamanho apresentados e clique em “Calcular SHA-256”.
- Use “Copiar hash” e compare os 64 caracteres com a referência. O botão copia somente o hash; a comparação ainda tem de ser feita. As letras hexadecimais A–F e a–f representam os mesmos valores.
- Se houver diferença, não execute o ficheiro. Verifique 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, introduza 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, prima 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 ficheiros, guarde 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: verifique essa definição.
Diferenças que não aparecem no ecrã
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 ficheiro UTF-8 com BOM também tem bytes extras no início em comparação com o mesmo texto guardado sem BOM.
Os acentos também podem surpreender: um é e um e seguido de um acento combinante podem parecer iguais no ecrã, 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 ficheiros de texto de até 5 MiB. A codificação sugerida tem de ser confirmada; sem BOM, nem sempre é possível identificá-la. Não converta o ficheiro antes de verificar o 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 ficheiro é inofensivo nem que o seu autor é quem afirma ser. Se um invasor fornecer tanto um ficheiro alterado como o seu hash, os dois vão corresponder. A procedência da referência continua a ser 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 ficheiro, 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 ficheiro muda o seu hash?
Não: o nome não entra no cálculo. Por outro lado, alterar metadados armazenados dentro do ficheiro muda os seus bytes e, geralmente, o seu hash.
Posso recuperar o ficheiro a partir do SHA-256?
SHA-256 não é criptografia e não tem chave de decifragem. Um hash serve para comparar dados, não para recuperá-los nem para esconder um segredo previsível.
Por que um ficheiro grande não funciona?
O cálculo continua no navegador, mas o ficheiro 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.