Como verificar um hash sozinho
Por BlockchainSignPublicado a

Verificar um hash é uma operação de trinta segundos com ferramentas já presentes no seu computador. É também o passo que transforma "disseram-me que coincide" em "eu verifiquei".
Os comandos
macOS e Linux
shasum -a 256 nomeficheiro
ou, na maioria das distribuições Linux:
sha256sum nomeficheiro
Windows
certutil -hashfile nomeficheiro SHA256
PowerShell
Get-FileHash nomeficheiro -Algorithm SHA256
Num browser — o gerador gratuito de hash SHA-256 deste site. Utiliza a Web Crypto API, executa-se inteiramente na sua máquina e funciona com a ligação à internet desligada. Esta última propriedade é a essência: pode confirmar que nada está a ser carregado ao desligar o cabo.
Todos estes produzem a mesma cadeia hexadecimal de 64 caracteres para os mesmos bytes. Se duas ferramentas discordarem, uma delas está a calcular o hash de algo diferente.
Comparar sem perder a vista
Uma cadeia de 64 caracteres é fácil de ler rapidamente e cometer erros. Alguns hábitos mais seguros:
Compare os primeiros seis e os últimos seis caracteres para uma verificação rápida, depois cole ambos num editor de texto para uma comparação completa quando for importante.
Deixe a máquina fazê-lo. No macOS ou Linux:
[ "$(shasum -a 256 ficheiro.pdf | cut -d' ' -f1)" = "hash_esperado_aqui" ] && echo MATCH || echo DIFFERENTAtenção às maiúsculas e minúsculas. A saída hexadecimal é insensível a maiúsculas/minúsculas no significado, mas as ferramentas diferem no que imprimem. Converta ambas para minúsculas antes de comparar.
Quando o hash não coincide
Uma divergência significa que os bytes são diferentes. Isso é tudo o que significa, e as causas habituais são banais.
O ficheiro foi guardado novamente. Abrir um documento e guardá-lo novamente reescreve-o — frequentemente com uma nova data de modificação embutida, ou numa passagem de compressão diferente. O conteúdo parece idêntico, mas os bytes não são.
Foi exportado em vez de copiado. Um PDF exportado duas vezes da mesma fonte é geralmente dois ficheiros diferentes.
A transferência alterou-o. Algumas ferramentas "corrigem" amavelmente as quebras de linha em ficheiros de texto, convertendo entre LF e CRLF. Isso altera cada linha.
Calculou o hash da coisa errada. Calcular o hash de uma pasta, de um atalho ou de um zip que reconstruiu em vez do ficheiro original. Reconstruir um zip quase nunca reproduz os bytes originais, porque as marcas temporais e a ordem estão armazenadas no interior.
Há realmente um erro. Raro, mas é a razão pela qual a verificação existe.
A lição em todos estes casos: arquivar o ficheiro exato que certificou e trabalhar numa cópia. Um registo temporal cobre bytes, não significado.
Por que "verifique o utilizador mesmo" não é um slogan
Há uma razão específica para insistir nisso em vez de aceitar um visto verde num website.
Uma página de verificação que não escreveu, a correr num servidor que não controla, a mostrar um resultado que não pode reproduzir, é uma afirmação. Acontece ser verdadeira na maioria dos casos, e continua a ser uma afirmação. Quando o registo importa — uma disputa, uma auditoria, uma reivindicação — quer uma verificação que não passe pela parte interessada na resposta.
Esse é também o padrão que nós próprios seguimos. A nossa página de verificação explica cada verificação com uma nota "como fazer isto o utilizador mesmo" ao lado, porque uma ferramenta de verificação que não possa ser substituída por três comandos de shell está a fazer algo que não deveria precisar de fazer.
O que prova um hash coincidente
Que dois ficheiros são byte a byte idênticos. Nada mais, e isso é muito.
Não lhe diz de onde veio nenhum dos ficheiros, quem o criou ou quando — isso vem da evidência circundante. Num certificado de registo temporal, o hash é a ligação entre o seu ficheiro e um registo público datado; isoladamente, é uma impressão digital sem data associada.
Para saber o que é um hash e como funciona, veja o que é um hash SHA-256.