Segurança

Como verificar um download que você não esperava, e o que um checksum resolve

Um checksum que bate diz que o arquivo chegou como foi publicado. Se é o arquivo que você deve abrir depende de onde veio o checksum e de verificações que vêm antes de qualquer hash.

Um arquivo viaja por um caminho a partir de um servidor; um checksum viaja por outro, de uma segunda fonte. No computador os dois são comparados e batem.

Um checksum que bate prova uma única coisa: os bytes do seu disco são os bytes que quem publicou o checksum estava descrevendo. Ele só prova que o arquivo é genuíno quando o checksum chegou até você por um caminho diferente do do arquivo. Num download que você não esperava, as verificações que mais importam vêm antes de qualquer hash: quem enviou, o que o arquivo realmente é e se a pessoa que você acha que o enviou sabe do assunto.

O que você confere antes de calcular qualquer hash?

Se o arquivo chegou sem você pedir, como uma fatura de um fornecedor, um "instalador atualizado" de um colega ou um link numa mensagem, o checksum é o primeiro passo errado. Um hash diz que o arquivo bate com um número, e esse número tem que vir de algum lugar. Se os dois foram enviados pela mesma pessoa, você não aprendeu nada sobre ela.

Três perguntas são mais baratas e dizem mais:

Se as respostas forem boas e o projeto publicar um checksum, aí vale gastar os dois minutos com o hash.

De onde veio o checksum?

Um checksum impresso ao lado do link de download está no mesmo servidor que o arquivo. Quem consegue trocar o arquivo consegue trocar o número na mesma edição, e os dois vão bater. Você conferiu o arquivo contra ele mesmo. Ainda assim ele detecta uma transferência cortada, um disco corrompido ou um espelho servindo uma versão antiga, que é a falha comum, mas é uma verificação de consistência.

Um checksum vira evidência quando quem poderia adulterar o arquivo não controla o caminho que ele percorreu. Em ordem aproximada de força:

Qual algoritmo o número usa é outro assunto. MD5 versus SHA-256 explica por que um MD5 antigo ainda detecta corrupção e ainda assim falha diante de uma troca deliberada, e o que é uma função hash explica por que um digest não pode ser executado ao contrário.

Como calcular e comparar o hash?

Primeiro conte os caracteres do valor publicado, porque eles dizem o algoritmo: 32 caracteres hexadecimais é MD5, 40 é SHA-1, 64 é SHA-256 e 128 é SHA-512. Use o mesmo.

No seu próprio computador, as ferramentas embutidas são a melhor opção. O Get-FileHash do PowerShell usa SHA-256, a menos que você peça outro algoritmo (é o que diz a documentação da Microsoft para o PowerShell 7.6), e aceita também SHA-1, SHA-384, SHA-512 e MD5. No Windows, certutil -hashfile arquivo SHA256 também funciona. No Linux, sha256sum arquivo, e no macOS, shasum -a 256 arquivo.

Quando você está num computador emprestado ou restrito, ou prefere não abrir um terminal, o verificador de hash de arquivos faz o mesmo numa aba. Escolha o arquivo, cole a linha publicada na caixa de comparação e a página diz se algum algoritmo marcado a produz. Ele pega a maior sequência de dígitos hexadecimais do que você colar, então uma linha inteira hash nome de um arquivo de checksums funciona.

Compare o valor inteiro. Conferir só os seis primeiros e os seis últimos caracteres é como uma checagem descuidada vira falsa tranquilidade, e a ferramenta compara cada caractere por você.

E se os checksums não baterem?

Baixe o arquivo de novo antes de suspeitar de outra coisa. Uma transferência cortada é, de longe, a causa mais comum. Se a segunda cópia der o mesmo hash da primeira, o arquivo é estável e o número com que você compara provavelmente é de outra versão ou plataforma, então confira a compilação com o nome do arquivo. Se cada download novo der um valor diferente, algo entre você e o servidor está alterando o arquivo, e você não deve executá-lo.

O que um checksum nunca pode dizer?

Ele não diz nada sobre se o arquivo é seguro. Um arquivo genuíno de um editor malicioso ou comprometido bate perfeitamente com o próprio checksum. Também não diz quem fez o arquivo, a menos que haja uma assinatura. E uma coincidência com um número que você não consegue rastrear até uma fonte independente significa que a transferência funcionou.

Para executáveis, há verificações que um hash não substitui. No Windows, a janela de Propriedades do arquivo tem uma aba de Assinaturas Digitais que mostra quem assinou um instalador, se alguém assinou. No macOS, o sistema verifica a assinatura e a notarização quando você abre um app pela primeira vez, e um aviso ali merece ser lido em vez de dispensado. Nada disso torna um arquivo seguro. Elas dizem quem responde por ele.

Onde a ferramenta do navegador para?

O verificador de hash de arquivos oferece SHA-256, SHA-512 e SHA-1. Não tem MD5, porque a interface criptográfica do navegador não o inclui. O gerador de hash calcula MD5, além de SHA-384, se foi isso que quem publicou informou. Ambas leem o arquivo inteiro na memória antes de calcular, então algumas centenas de megabytes vão bem e uma imagem de disco de vários gigabytes não, sobretudo num celular. Para esses casos, use a linha de comando. Nenhuma das ferramentas envia nada, e nenhuma consegue verificar uma assinatura.

Se o arquivo é um em que você já decidiu confiar, o verificador de hash de arquivos dá o digest e a comparação num único passo, com o arquivo lido apenas dentro da aba do seu navegador.

A mesma regra dos dois caminhos vale quando é você quem envia algo sensível: como enviar uma senha com segurança explica por quais canais convém dividi-la.

Perguntas frequentes

Um checksum que bate significa que o download é seguro?

Não. Significa que o arquivo do seu disco é idêntico ao arquivo com o qual o checksum foi calculado. Se quem publica for malicioso, ou o checksum vier da mesma página comprometida que o arquivo, a coincidência acontece do mesmo jeito. A segurança depende de quem fez o arquivo e de como o checksum chegou até você.

Posso confiar no checksum que aparece ao lado do botão de download?

Só contra acidentes. Quem consegue substituir o arquivo num servidor costuma conseguir substituir o número ao lado, então os dois batem qualquer que seja o conteúdo. Ainda assim ele detecta um download quebrado ou cortado. Para checar a autenticidade, use uma assinatura ou um checksum publicado num lugar independente do download.

Como sei qual algoritmo de hash um checksum usa?

Conte os caracteres hexadecimais. 32 é MD5, 40 é SHA-1, 64 é SHA-256 e 128 é SHA-512. Calcule o arquivo com o mesmo algoritmo, porque digests de algoritmos diferentes nunca batem entre si, nem para o mesmo arquivo.

O que fazer se o checksum não bater?

Baixe o arquivo de novo, de preferência por outra conexão, e calcule o hash da nova cópia. Se agora bater, a primeira transferência foi danificada. Se nunca bater, confira se você compara com a versão e a plataforma certas, e não execute o arquivo até conseguir explicar a diferença.

Última atualização 21 de outubro de 2026