Hash do PDF: como provar que o arquivo não foi alterado
Como calcular o SHA-256 de um PDF no Mac, Linux e Windows, guardar o valor e provar que o arquivo não mudou, sem confundir integridade com autoria.
Calcule o SHA-256 do PDF final, logo depois de gerá-lo, e guarde o valor de 64 caracteres em um lugar com data, como um e-mail enviado a você mesmo antes do envio. Quem recebe calcula o mesmo valor no arquivo que chegou. Se os dois forem idênticos, os bytes são os mesmos. O hash prova que o arquivo não mudou, mas não prova quem o criou.
O que o hash faz, em termos simples
O hash é o resultado de uma conta feita sobre todos os bytes do arquivo. O algoritmo SHA-256 é o padrão atual para essa finalidade e gera sempre um valor de 64 caracteres hexadecimais, seja qual for o tamanho do PDF. Um arquivo de 2 KB e um de 200 MB geram valores do mesmo tamanho.
O ponto importante é a sensibilidade. Trocar uma letra no texto, mudar uma data nos metadados ou acrescentar uma página muda o valor inteiro. Por isso, o hash não mostra onde o arquivo mudou, só que mudou.
Como calcular o hash em cada sistema
Os comandos abaixo já vêm instalados em seus respectivos sistemas. Troque arquivo.pdf pelo nome do seu arquivo e, se o nome tiver espaços, coloque-o entre aspas.
| Sistema | Comando | Observação |
|---|---|---|
| Mac | shasum -a 256 arquivo.pdf | Vem no terminal sem instalação |
| Linux | sha256sum arquivo.pdf | Presente na maioria das distribuições |
| Windows, PowerShell | Get-FileHash arquivo.pdf -Algorithm SHA256 | O valor aparece na linha Hash |
| Windows, prompt de comando | certutil -hashfile arquivo.pdf SHA256 | A primeira linha de resultado é o valor |
Passo a passo para provar que o arquivo não mudou
O método funciona só se o valor for guardado antes de o arquivo sair das suas mãos. Calcular o hash depois de receber uma cópia não prova nada sobre a versão original.
- Gere o PDF final e confira o conteúdo. Depois de calculado o hash, não altere mais nada.
- Rode o comando do seu sistema e copie o valor inteiro, com os 64 caracteres.
- Guarde o valor em um lugar com data, como um e-mail para você mesmo, um registro no sistema da empresa ou uma mensagem enviada antes do arquivo.
- Envie o PDF. Se possível, informe o valor por outro canal, para que ele não dependa do mesmo anexo.
- Quem recebe calcula o hash do arquivo recebido com o mesmo algoritmo e compara com o valor guardado.
- Se os valores forem idênticos, o arquivo é o mesmo, byte a byte. Se forem diferentes, algo mudou, mesmo que a diferença pareça mínima.
O que muda o hash sem você perceber
Para usar o hash bem, é preciso saber o que altera o arquivo. A tabela mostra os casos mais comuns. Na dúvida, calcule o hash de novo depois da ação.
| Ação com o arquivo | O hash muda? | Motivo |
|---|---|---|
| Copiar ou baixar o mesmo arquivo | Não | Os bytes são copiados sem alteração |
| Abrir e fechar sem salvar | Não | Nada é gravado no arquivo |
| Salvar de novo no leitor ou no editor | Pode mudar | O programa regrava parte ou o todo do arquivo |
| Juntar, comprimir, girar, dividir ou organizar no AjustaPDF | Sim | Cada operação gera um arquivo novo |
| Exportar o mesmo documento de novo a partir da origem | Quase sempre sim | Datas e identificadores internos costumam mudar a cada exportação |
Essa última linha é a que mais confunde. Você pode ter o mesmo texto e as mesmas imagens, e ainda assim o hash mudar. Por isso, o valor deve ser calculado sobre o arquivo final que será enviado, e não sobre um rascunho.
O que o hash prova e o que não prova
O hash prova uma coisa só: que o arquivo que você tem é idêntico ao que foi calculado antes. Ele não diz quem criou o documento, quando ele foi feito, nem se o conteúdo é verdadeiro.
- Quem altera o arquivo pode gerar um hash novo e enviá-lo como se fosse o original. O valor só tem peso se foi registrado em um lugar que quem alterou o arquivo não controla.
- Um valor guardado só no próprio computador é fácil de ser alterado junto com o arquivo. Use um canal que a outra parte também tenha acesso.
- Para provar autoria e data com força, o caminho é a assinatura digital, que pode incluir carimbo do tempo. O guia sobre PDF assinado digitalmente explica por que um arquivo assinado não pode ser editado depois.
- Assinatura colada como imagem não entra nessa conta. Veja o guia sobre assinatura colada como imagem antes de contar com ela.
Quando não há arquivo original para comparar
O hash só ajuda se você tiver uma referência confiável. Um boleto ou um comprovante que chega por e-mail, sem nenhum valor guardado por você, não pode ser conferido só pelo hash: não há com o que comparar. Nesses casos, a checagem precisa acontecer na origem.
Para boletos, confira o valor, o beneficiário e o código de barras no banco ou no sistema de cobrança, e não pelo PDF recebido. Para comprovantes de Pix, confirme a entrada do dinheiro na sua conta. Os guias sobre comprovante Pix falso em PDF e boleto em PDF alterado mostram esse caminho em detalhes.
Antes de guardar um PDF com dados sensíveis, lembre que o hash não o protege. Ele só mostra se o arquivo mudou. Para o que não deve ser visto por outras pessoas, o guia sobre versões antigas escondidas no PDF mostra o que pode ficar dentro do arquivo mesmo depois de editado.
Perguntas frequentes
O que é o hash de um PDF?
É um valor calculado a partir de todos os bytes do arquivo, geralmente com o algoritmo SHA-256, que gera 64 caracteres. Se qualquer byte mudar, o valor muda. Ele serve como uma impressão digital do arquivo, mas não diz nada sobre o conteúdo além de ele ser igual ou diferente.
Dois PDFs com o mesmo texto e as mesmas páginas têm o mesmo hash?
Em geral, não. Cada programa grava o arquivo com estruturas e campos próprios, e a data de criação costuma estar dentro do arquivo. Por isso, exportar o mesmo documento duas vezes costuma gerar hashes diferentes. Só o arquivo idêntico, byte a byte, gera o mesmo valor.
Posso renomear o arquivo sem mudar o hash?
Sim. O hash depende do conteúdo do arquivo, não do nome. Renomear ou mover o PDF não altera o valor. Já salvar o arquivo de novo pode alterar o hash, mesmo sem nenhuma mudança visível na página.
Hash serve como prova em disputa?
Serve como indício de que o arquivo não mudou desde o registro do valor. Não prova quem criou o arquivo nem quando. Para prova com valor mais forte, combine o hash com assinatura digital ou com um registro feito por terceiro, como um e-mail enviado antes do envio do documento.
Preciso instalar algum programa para calcular o hash?
Não. No Mac e no Linux, o terminal já traz os comandos. No Windows, o PowerShell traz o Get-FileHash, e o prompt de comando traz o certutil. O resultado é o mesmo em qualquer um, desde que o algoritmo seja SHA-256.