Hash de uma foto: como conferir se o arquivo mudou

Para conferir se o arquivo de uma fotografia mudou, calcule o hash de uma foto e compare o resultado com um valor registrado anteriormente ou com o hash de uma cópia de referência.

Usando o mesmo algoritmo, valores diferentes demonstram que os arquivos não contêm exatamente os mesmos dados.

Isso não significa, necessariamente, que alguém alterou a aparência da imagem. Remover metadados ou exportar novamente um JPEG também pode mudar o hash, mesmo quando a fotografia parece igual.

A conferência funciona melhor quando você sabe qual arquivo está comparando, de onde veio a referência e quais operações ocorreram entre as duas versões.

O hash de uma foto verifica o arquivo, não apenas a imagem visível

Hash é um resumo matemático calculado a partir dos dados. Neste tutorial, usaremos o SHA-256, que produz uma sequência de 64 caracteres hexadecimais.

O cálculo considera o conteúdo do arquivo inteiro, incluindo informações incorporadas que não aparecem como pixels na tela. Ele não avalia se a fotografia está bonita, nítida ou fiel à cena.

O Secure Hash Standard do NIST descreve algoritmos empregados para detectar mudanças desde a geração de um resumo.

Na prática, hashes SHA-256 iguais fornecem uma evidência extremamente forte de que os conteúdos comparados são idênticos. Existem colisões teoricamente possíveis, pois o resultado tem tamanho limitado; isso não transforma a comparação em uma simples estimativa visual.

Outra consequência importante: copiar ou renomear um arquivo, sem modificar seus dados, preserva o hash. O nome e a pasta não são aquilo que está sendo resumido.

Primeiro, escolha uma referência que faça sentido

Calcular o hash hoje não revela se a foto foi modificada ontem. O resultado descreve o arquivo que você possui agora.

Para acompanhar mudanças futuras, registre uma referência antes das operações que deseja conferir. Para verificar uma transferência, compare o arquivo de origem com a cópia recebida.

Imagine uma fotografia copiada de um computador para um HD externo. Você pode calcular o SHA-256 nas duas unidades. Se os valores coincidirem, a conferência sustenta que aquela cópia preservou os dados.

Já comparar um RAW com um JPEG exportado não serve para verificar identidade: são arquivos diferentes, mesmo quando representam a mesma captura.

Também não adianta calcular duas vezes o hash do mesmo arquivo e concluir que uma transferência foi correta. É necessário conferir os dois arquivos nos respectivos destinos.

Como calcular o SHA-256 no Windows

No Windows, abra o PowerShell pelo menu Iniciar. Não é necessário executar como administrador para ler uma fotografia à qual sua conta já tem acesso.

O exemplo considera uma imagem chamada foto.jpg, dentro de C:\Fotos. Substitua esse caminho pelo endereço real do seu arquivo:

Get-FileHash -LiteralPath 'C:\Fotos\foto.jpg' -Algorithm SHA256 | Format-List

O resultado apresenta algoritmo, hash e caminho. O cálculo lê o arquivo; não edita a fotografia.

A documentação oficial do Get-FileHash explica os parâmetros e os resultados. LiteralPath trata o caminho literalmente, evitando interpretar caracteres do nome como curingas.

Se aparecer uma mensagem de arquivo inexistente, confira pasta, nome e extensão. Se houver erro de leitura, não interprete a ausência de resultado como aprovação da integridade.

Para guardar somente o valor em um arquivo de texto, execute o bloco completo:

& {
    $hashInicial = (Get-FileHash -LiteralPath 'C:\Fotos\foto.jpg' -Algorithm SHA256 -ErrorAction Stop).Hash
    Set-Content -LiteralPath 'C:\Fotos\foto.sha256.txt' -Value $hashInicial -ErrorAction Stop
}

Esse comando cria ou substitui o arquivo de referência indicado. Não o execute novamente sobre uma referência antiga que você pretende preservar.

Registre separadamente qual fotografia foi conferida, o algoritmo, a data da operação e a ferramenta utilizada.

Como comparar o original com uma cópia

Suponha que o original esteja em C:\Fotos e a cópia no HD externo E:\Backup. Substitua os caminhos e execute o bloco inteiro:

& {
    $hashOrigem = (Get-FileHash -LiteralPath 'C:\Fotos\foto.jpg' -Algorithm SHA256 -ErrorAction Stop).Hash
    $hashCopia = (Get-FileHash -LiteralPath 'E:\Backup\foto.jpg' -Algorithm SHA256 -ErrorAction Stop).Hash
    $hashOrigem -eq $hashCopia
}

Com os dois cálculos concluídos sem erro, True indica valores iguais; False, valores diferentes. Confira os caminhos antes de interpretar o resultado.

Os comandos estão agrupados para que um erro de leitura interrompa aquela execução. Uma mensagem de erro não equivale a um resultado de comparação.

Para comparar o arquivo atual com o valor salvo anteriormente:

& {
    $hashAtual = (Get-FileHash -LiteralPath 'C:\Fotos\foto.jpg' -Algorithm SHA256 -ErrorAction Stop).Hash
    $hashReferencia = (Get-Content -LiteralPath 'C:\Fotos\foto.sha256.txt' -Raw -ErrorAction Stop).Trim()
    $hashAtual -eq $hashReferencia
}

A referência deve conter o valor completo produzido anteriormente. Evite comparar apenas os primeiros caracteres e não confunda o arquivo de texto com a própria fotografia.

Por que o hash mudou se a imagem parece igual?

A aparência visível é apenas parte do arquivo. Duas versões podem parecer iguais e carregar informações diferentes.

OperaçãoConsequência para a comparação
Copiar ou renomear sem alterar os dadosO hash permanece igual
Alterar metadados incorporadosO hash muda
Redimensionar ou converter o formatoProduz outro arquivo, normalmente com outro hash
Exportar novamentePode mudar compressão, metadados ou estrutura
Alterar apenas um arquivo auxiliar separadoNão altera, por si só, o hash da fotografia
Transferência com dados corrompidosPode produzir divergência

A documentação de metadados do Lightroom Classic explica uma diferença relevante: determinados RAWs proprietários utilizam arquivos auxiliares, enquanto formatos como JPEG e DNG podem receber metadados incorporados.

Por isso, o hash de um RAW pode permanecer igual enquanto suas instruções de edição mudam em outro arquivo. Se você precisa preservar o trabalho completo, considere também os arquivos auxiliares e o catálogo correspondente.

Na publicação online, a versão entregue ao visitante também pode ser diferente daquela enviada. O guia sobre como salvar fotos para web explica redimensionamento, compressão e versões derivadas.

Hash diferente exige investigação

Uma divergência responde à pergunta “os dados são iguais?”. Ela não informa quem mudou o arquivo, quando isso aconteceu ou qual região foi afetada.

Antes de concluir que houve manipulação, confira se você comparou as versões corretas. Verifique também se algum programa gravou metadados, se houve exportação ou se a transferência estava concluída.

Preserve ambos os arquivos. Procure outra cópia confiável e consulte o histórico das operações. Não sobrescreva a referência apenas para fazer a comparação voltar a coincidir.

O relatório NIST IR 8387 sobre preservação de evidências digitais destaca a proteção dos registros de hash e a investigação de divergências.

Esse cuidado também vale para acervos pessoais: se a foto e sua referência forem substituídas juntas, a comparação com a nova referência não revelará a substituição anterior. Preserve o registro inicial em um local protegido contra sobrescrita.

O que essa conferência não comprova

Um hash isolado não identifica o fotógrafo, não confirma a data da captura e não demonstra que a cena aconteceu como aparece na imagem.

Uma fotografia já manipulada pode receber um hash perfeitamente válido. A conferência posterior mostrará apenas se aquele arquivo mudou desde a referência.

Para discutir origem e autoria, preserve outras informações, como sequência da sessão, originais, backups e documentação do trabalho. O artigo sobre como provar que uma fotografia é sua desenvolve essa questão.

O hash também não recupera uma foto corrompida e não substitui backup. Seu valor está em permitir uma conferência objetiva: estabelecer uma referência, preservar os arquivos e verificar se os dados continuam iguais.

Fontes e referências

  • Microsoft. Get-FileHash — Microsoft.PowerShell.Utility. Documentação consultada nas seções de descrição, exemplos e parâmetros. Página oficial.
  • National Institute of Standards and Technology. FIPS 180-4: Secure Hash Standard. 2015. Consultada a apresentação oficial do padrão e sua finalidade. DOI: 10.6028/NIST.FIPS.180-4. Página oficial.
  • Barbara Guttman, Douglas R. White e Tracy Walraven. Digital Evidence Preservation: Considerations for Evidence Handlers. NIST IR 8387, 2022. Seção 3.2, especialmente itens 1 e 9, páginas numeradas 7 e 11. DOI: 10.6028/NIST.IR.8387. Documento completo.
  • Adobe. Metadata basics and actions in Lightroom Classic. Consultadas as explicações sobre armazenamento de XMP e gravação de metadados. Documentação oficial.

Para explorar mais

Receba as novidades do Latitude Pulse

Fotografia prática, sem enrolação, direto no seu e-mail.

Sem spam. Você pode cancelar quando quiser. Consulte nossa política de privacidade.