Hash de ficheiros em lote e verificador de manifestos

Escolha ou largue muitos ficheiros de uma vez e esta página calcula o resumo MD5, SHA-1, SHA-256, SHA-384 ou SHA-512 de cada um, inteiramente dentro do seu navegador. Depois pode copiar os resultados como linhas compatíveis com sha256sum para as suas notas de versão, ou colar um manifesto de somas de verificação (SHA256SUMS, .sha256, .sfv, saída BSD de openssl dgst) e deixar a página dizer-lhe quais ficheiros verificaram, quais não coincidiram e quais faltam. Nada é enviado para lado nenhum. Para um único ficheiro com mais algoritmos, veja o Gerador de hash.
Largue os ficheiros aqui, ou clique para os escolher
Até 50 ficheiros, 200 MB cada. Os ficheiros ficam nesta máquina.
Nenhum ficheiro selecionado.
— saída hexadecimal; escolha pelo menos um.
Clique em qualquer célula de resumo para a copiar. Os nomes e os tamanhos são sempre listados, por isso a tabela serve também como vista em lote dos tamanhos dos ficheiros.
A tabela de resumos aparece aqui depois de escolher ficheiros e premir Calcular.
Cole um manifesto em estilo GNU (hash  nome), BSD (SHA256 (nome) = hash), SFV (nome crc32) ou simples (sha256=hash), ou carregue o próprio ficheiro .sha256 / SHA256SUMS / .sfv. As linhas que começam por ; são tratadas como comentários.
Privacidade: todos os resumos são calculados com o motor JavaScript e WebCrypto do próprio navegador — os ficheiros nunca saem deste separador. Sugestão: depois de verificar um download pode fechar esta página com segurança; nada foi guardado.

O que é o hash de ficheiros em lote?

Uma soma de verificação é uma impressão digital curta de um ficheiro: passa-se os bytes do ficheiro por uma função de hash e obtém-se um resumo que muda quase de certeza quando sequer um byte do ficheiro muda. Os distribuidores de software publicam esses resumos junto aos seus downloads para que possa provar que o ficheiro que recebeu é o que eles enviaram — o download não foi truncado nem corrompido, e ninguém trocou o conteúdo.

Fazê-lo um ficheiro de cada vez serve para um único download. No momento em que tem uma pasta de ficheiros, ou um arquivo de versão com um manifesto SHA256SUMS dentro, quer a versão em lote: calcular o hash de cada ficheiro uma vez e depois verificar cada linha do manifesto contra o ficheiro correspondente. É exatamente esse ciclo que esta página automatiza.

Os formatos de manifesto que esta página lê

EstiloLinha de exemploOnde aparece
GNU900150983c...  hello.txtSaída de sha256sum / md5sum, ficheiros SHA256SUMS em versões Linux
BSDSHA256 (hello.txt) = 900150983c...openssl dgst -sha256 em macOS/BSD
SFVhello.txt 1A2B3C4DFicheiros Simple File Verification, binários antigos de grupos de notícias
simplessha256=ba7816bf...Páginas de download, notas de versão, Docker checksums

O comprimento do hash identifica por si o algoritmo: 32 caracteres hexadecimais significam MD5, 40 significam SHA-1, 64 significam SHA-256, 96 SHA-384 e 128 SHA-512 — por isso as linhas em formato GNU não precisam de dizer que programa as produziu.

Como funciona, em resumo

Cada ficheiro é lido uma vez com o FileReader do navegador e entregue a crypto.subtle.digest (a família SHA) e a uma implementação local de MD5. Os resumos são codificados em hexadecimal e alinhados ao lado das entradas do manifesto; um ficheiro só verifica quando o resumo calculado é igual ao esperado, carácter a carácter. As linhas SFV trazem um CRC-32 em vez de um hash criptográfico — a página assinala-as como não suportadas em vez de fingir que um CRC é um resumo.

Erros comuns

« Todos os meus ficheiros dizem incompatibilidade. » — a causa habitual é um manifesto feito para outra versão do download. Verifique primeiro os nomes dos ficheiros: o comparador compara os nomes base, por isso dist/app-1.2.bin corresponde a uma linha de manifesto para app-1.2.bin. « SHA-1 verificado, por isso o ficheiro é seguro? » — não. A verificação prova que os bytes correspondem ao que o publicador lançou; saber se o publicador é fiável é outra questão. E o SHA-1 tem colisões comprovadas desde 2017, por isso prefira manifestos SHA-256 quando tiver a escolha.

Dúvidas frequentes

Calcular o hash de um ficheiro grande é lento? — cerca de um segundo por 200 MB numa máquina normal; uma linha de progresso mostra até onde vai o lote.
Posso verificar um manifesto SFV com CRC-32? — as linhas SFV são lidas e listadas, mas um CRC-32 não é calculado por esta página; use a ferramenta CRC no hub de criptografia para ficheiros individuais.
Porquê só hexadecimal? — os manifestos na natureza são hexadecimais; os resumos em base64 são uma funcionalidade.
O que acontece aos meus ficheiros? — nada: sem servidor, sem armazenamento, sem análise; feche o separador e todos os bytes de entrada desaparecem.