Checksum de arquivo

Arraste um arquivo e receba MD5, SHA-1, SHA-256 e SHA-512. Cole o valor publicado pelo site e eu digo na hora se confere, ou adicione um segundo arquivo e descubra se os dois são mesmo idênticos. Tudo no seu navegador, o arquivo nunca é enviado.

📄 Solte o arquivo aqui

ou clique para escolher, ele fica no seu dispositivo

nenhum arquivo escolhido

📄 Solte o segundo arquivo aqui

só é necessário para saber se dois arquivos são idênticos

nenhum arquivo escolhido

Algoritmos para calcular

SHA-256 é o que quase todas as páginas de download publicam. Marque MD5 ou SHA-1 só quando for esse o valor que você precisa comparar, e se você colar um checksum logo abaixo, o algoritmo certo é marcado sozinho.

🔒 O arquivo é lido dentro do navegador, bloco por bloco, e nunca é enviado a nenhum servidor.

Como usar

Arraste o arquivo para a primeira caixa (ou clique para escolher) e as impressões digitais aparecem sozinhas, com a barra avançando enquanto o arquivo é lido. Se o site de onde você baixou publica um checksum, cole no campo e não precisa de mais nada: pelo tamanho, a ferramenta descobre se é um MD5, um SHA-1, um SHA-256 ou um SHA-512, marca o algoritmo certo sozinha e responde sim ou não, e você nunca precisa comparar 64 dígitos no olho. Você também pode colar a linha inteira gerada por sha256sum ou certutil -hashfile, com o nome do arquivo incluído, e tanto faz se está em maiúsculas ou minúsculas. A segunda caixa responde a outra pergunta: se dois arquivos que você já tem no disco são realmente o mesmo arquivo.

O que é um checksum e do que ele realmente protege você

Uma função hash processa todos os bytes do arquivo e sempre devolve o mesmo número de dígitos, 32 no MD5 e 64 no SHA-256, quer o arquivo tenha 3 KB ou 8 GB. Mude um único bit e a impressão digital muda por completo, porque cerca de metade dos dígitos muda (o efeito avalanche). Por isso comparar checksums pega um download interrompido, um byte danificado num pendrive já gasto ou um backup copiado errado, danos que você não vê e que depois cobram seu preço com um erro incompreensível no meio de uma instalação. Há um limite que vale lembrar, porque o checksum protege de acidentes e não de um atacante: se alguém consegue trocar o arquivo num mirror, quase sempre consegue mudar também a página que publica o valor. Para garantir a autenticidade você precisa de uma assinatura digital (GPG, por exemplo) ou de um valor tirado de outra fonte confiável.

MD5 e SHA-1 estão quebrados, e mesmo assim há um motivo para mantê-los

As colisões do MD5 são públicas desde 2004, encontradas por Wang Xiaoyun e colegas, e as do SHA-1 desde 2017, quando o Google e o CWI de Amsterdã publicaram o SHAttered, dois PDFs diferentes com o mesmo SHA-1. Uma colisão significa que é possível construir de propósito dois arquivos diferentes com a mesma impressão digital, então nenhum dos dois algoritmos prova mais que um arquivo é o original. Eles continuam perfeitamente bons para a pergunta prática de quem baixa algo, que é se o arquivo chegou inteiro e sem danos, e continuam necessários porque esse é o valor que muitos projetos publicam junto com os arquivos. Se houver um SHA-256 ao lado, use esse.

Como o cálculo é feito aqui e o que ele não consegue fazer

O MD5, o SHA-1 e o SHA-256 são implementados à mão em JavaScript dentro desta página, de forma incremental: o arquivo é lido em blocos de 4 MiB e cada bloco alimenta o estado interno do algoritmo, então nunca existe uma cópia completa do arquivo na memória e o tamanho não é problema. O MD5 precisa ser implementado à mão porque o WebCrypto, o motor de criptografia do navegador, não o oferece. O SHA-512 é a exceção: trabalha com palavras de 64 bits, que o JavaScript não tem, então a tarefa vai para o WebCrypto, que por sua vez exige o arquivo inteiro na memória de uma só vez. Em arquivos de vários gigabytes esse pedido pode falhar, e quando isso acontece a ferramenta avisa e sugere desmarcar o SHA-512. O tempo depende do seu processador e do seu disco e cresce na proporção dos bytes, por isso o resultado mostra quantos MiB por segundo foram processados, e o botão Parar interrompe na hora um cálculo demorado.

Erros comuns e o que fazer quando não confere

O primeiro erro é comparar as impressões digitais no olho, porque o olho confere o começo e o fim e pula o meio, que é justamente onde a diferença se esconde. O segundo é achar que maiúsculas e minúsculas importam, quando A e a são o mesmo dígito hexadecimal. O terceiro é de formato, porque alguns projetos publicam o valor em base64 em vez de hexadecimal (44 caracteres para um SHA-256, muitas vezes terminando em um sinal de igual) e aqui ele é reconhecido e convertido. Lembre também que o checksum de um arquivo zip não é o checksum dos arquivos que estão dentro dele, e que dois arquivos de tamanhos diferentes já são diferentes sem calcular nada. Se o valor não conferir, quase certamente o download foi interrompido, então baixe de novo e tente outra vez. Se falhar uma segunda vez com a mesma impressão digital, o arquivo no servidor pode realmente ser diferente do anunciado: não instale e procure um mirror oficial.

Ferramentas relacionadas