ToolActToolAct

Ferramenta de Verificação MD5 de Arquivo

Calcule o hash MD5 de um arquivo e verifique sua integridade

Upload de Arquivo

Arraste e solte arquivo aqui

Suporta qualquer tipo e tamanho de arquivo

Verificar Checksum

O que é MD5 de Arquivo?

MD5 (Message-Digest Algorithm 5) é um algoritmo de hash amplamente usado que mapeia qualquer conteúdo de arquivo para um resumo de comprimento fixo de 128 bits (32 caracteres hexadecimais). Qualquer pequena mudança no conteúdo do arquivo produz um valor MD5 completamente diferente. A ferramenta de verificação MD5 de arquivo é comumente usada para verificar a integridade de arquivos, garantindo que não foram adulterados ou corrompidos durante transferência ou download. File MD5 é usado com frequência para verificar rapidamente se um arquivo permaneceu igual ou corresponde a um checksum publicado. O algoritmo é rápido e amplamente suportado, mas ataques de colisão conhecidos fazem com que não seja mais adequado para decisões criptográficas de confiança. MD5 ainda aparece em verificações antigas de download, detecção simples de duplicados ou compatibilidade. Para integridade relevante à segurança, prefira SHA-256 ou algoritmos mais fortes e obtenha o checksum de uma fonte confiável.

Como Usar

Como usar

  1. Clique na área de upload ou arraste um arquivo para a página
  2. Clique no botão 'Calcular MD5'
  3. Aguarde a conclusão do cálculo e visualize o valor MD5
  4. Você pode inserir um valor MD5 conhecido na seção de verificação para comparar

Limites de Verificação

  • MD5 é útil para verificações rápidas de identidade de arquivos, mas não é suficientemente resistente a colisões para verificações sensíveis em segurança.
  • Para downloads ou lançamentos, compare os hashes de uma fonte confiável e prefira SHA-256 quando disponível.

Casos de uso

Gerar um checksum MD5 legado para um arquivoSelecione um arquivo e calcule seu MD5 de 128 bits com feedback de progresso, depois copie o digest hexadecimal minúsculo para sistemas que ainda exigem este checksum legado. O arquivo é lido em um Blob e processado inteiramente dentro do navegador — nunca é enviado, então o cálculo funciona em documentos privados ou amostras de fornecedor sem transmitir o conteúdo para lugar algum.
Comparar um arquivo contra um MD5 esperadoCole um valor MD5 conhecido e verifique se o digest de 32 caracteres gerado corresponde. Isso cobre verificações de transferência, exigências de fornecedores, detecção de duplicados e arquivos de release antigos que ainda publicam valores MD5. Use algoritmos mais fortes quando o checksum afetar confiança ou segurança — os ataques de colisão conhecidos do MD5 o tornam inadequado como evidência de adulteração.
Evitar usar MD5 como garantia de segurançaA ferramenta se adequa a trabalhos de compatibilidade e verificações rápidas de integridade, mas MD5 é vulnerável a colisões desde o ataque de Wang Xiaoyun em 2004, e o malware Flame em 2012 demonstrou forjamento real de colisão MD5 contra assinaturas de código da Microsoft. Para verificação sensível à segurança, mude para a ferramenta file-hash com SHA-256 ou superior. O design local mantém o conteúdo do arquivo no seu dispositivo — apenas o digest circula entre a página e o campo de comparação.
Conferir MD5 contra downloads de mirrorsMirrors de código aberto e páginas de firmware mais antigas ainda publicam somas MD5 para cada release. Gere o digest de 32 caracteres para o arquivo baixado e confirme que corresponde à string listada antes de gravar um dispositivo ou instalar o artefato. A diferença entre minúsculas e maiúsculas é uma incompatibilidade silenciosa frequente, então a comparação é feita na forma normalizada.
Migrar para SHA-256 para qualquer coisa relacionada a confiançaMD5 é suficiente para detectar corrupção acidental (um bit alterado ainda produz um digest de 128 bits totalmente diferente), mas o mesmo digest pode ser forjado por um invasor. Mude para a opção SHA-256 ou SHA-512 sempre que o checksum vier de terceiros e o arquivo for usado em produção — SHA-256 é resistente a colisões e continua sendo o padrão para releases assinadas.

Princípio técnico

MD5 é o Message-Digest Algorithm 5 definido em RFC 1321 (Ron Rivest, 1992). Produz um digest de 128 bits / 16 bytes exibido como 32 caracteres hexadecimais. O algoritmo segue a construção Merkle-Damgård: a entrada é preenchida para que seu comprimento em bits seja congruente a 448 mod 512 (um bit 1 seguido de zeros), o comprimento original é anexado como inteiro little-endian de 64 bits, e a mensagem preenchida é dividida em blocos de 512 bits. Cada bloco atualiza um estado interno de 128 bits (A, B, C, D) inicializado nas constantes A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476, executando 64 rodadas em quatro grupos de 16 que aplicam as funções bit a bit F(x,y,z) = (x AND y) OR ((NOT x) AND z), G(x,y,z) = (x AND z) OR (y AND (NOT z)), H(x,y,z) = x XOR y XOR z e I(x,y,z) = y XOR (x OR (NOT z)), combinadas com a constante por rodada T[i] = floor(2^32 * abs(sin(i+1))) e uma rotação à esquerda. O estado final concatenado em little-endian é o digest. O MD5 da entrada vazia é d41d8cd98f00b204e9800998ecf8427e, útil como verificação rápida. Navegadores não expõem MD5 via crypto.subtle (a especificação Web Crypto do W3C omite MD5 propositalmente por causa dos ataques de colisão), então esta ferramenta usa uma implementação MD5 em JavaScript puro que roda inteiramente no navegador. O arquivo é carregado na memória como ArrayBuffer e o digest de 16 bytes é calculado em uma única passagem e renderizado como 32 caracteres hexadecimais minúsculos. Como o trabalho roda na thread principal, calcular o hash de um arquivo de vários GB ocupa essa thread até o término; para arquivos muito grandes prefira uma ferramenta de desktop que faça streaming dos bytes a partir do disco. MD5 está criptograficamente quebrado em resistência a colisões. Wang Xiaoyun e Yu Hongbo publicaram o primeiro ataque prático de colisão em 2004 (CRYPTO 2005), reduzindo o custo a cerca de 2^39 operações. Em 2008, Sotirov et al. usaram colisões de prefixo escolhido para forjar um certificado intermediário de CA fraudulento; em 2012, o malware estatal Flame usou uma colisão de prefixo escolhido em MD5, até então desconhecida, para forjar um certificado de assinatura de código do Microsoft Terminal Server Licensing. O NIST proibiu MD5 em assinaturas digitais no SP 800-131A em 2011; o CMU CERT publicou a nota de vulnerabilidade VU#836068 chamando MD5 de 'unsuitable for further use'. MD5 ainda é aceitável para detectar corrupção acidental (inverter um bit altera ~64 dos 128 bits de saída pelo efeito avalanche) e detectar duplicatas em entradas confiáveis, mas não deve ser usado quando um atacante controla ou pode prever qualquer das entradas.

  • MD5 produz um resumo de 128 bits / 16 bytes, codificado como 32 caracteres hexadecimais minúsculos; especificado na RFC 1321 (Rivest, 1992).
  • Constantes do estado inicial: A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476; 64 rodadas em quatro grupos de 16 usando as funções bit a bit F/G/H/I e constantes por rodada T[i] = floor(2^32 * |sin(i+1)|).
  • MD5 da entrada vazia é d41d8cd98f00b204e9800998ecf8427e — uma verificação de sanidade rápida de que o pipeline de hashing retorna um resumo válido.
  • Navegadores não expõem MD5 via crypto.subtle (W3C Web Crypto omite de propósito); esta ferramenta usa uma implementação MD5 em JavaScript puro que carrega o arquivo como ArrayBuffer, calcula o digest de 16 bytes em uma passagem e exibe como 32 caracteres hex minúsculos.
  • Perfil de memória: todo o conteúdo do arquivo é lido em um único ArrayBuffer antes do hash, então arquivos de vários GB exigem memória de aba correspondente; para arquivos maiores do que a aba consegue segurar, use uma ferramenta de desktop (md5sum, certutil -hashfile, Get-FileHash) que faça streaming a partir do disco.
  • Ataques de colisão: Wang e Yu (2004) ~2^39 ops; Sotirov et al. (2008) colisão de prefixo escolhido usada para forjar um certificado CA fraudulento; malware Flame (2012) usou uma colisão de prefixo escolhido para forjar um certificado de assinatura de código da Microsoft.
  • NIST SP 800-131A proibiu MD5 para assinaturas digitais em 2011; MD5 é aceitável apenas para verificações de integridade não adversariais e detecção de duplicados — mude para SHA-256 ou superior sempre que o checksum afetar confiança.

Exemplos

MD5 de arquivo vazio (constante bem conhecida)

Arquivo: empty.txt (0 bytes)

MD5: d41d8cd98f00b204e9800998ecf8427e

Esse valor é o MD5 de uma entrada vazia -> uma verificação
rápida de sanidade de que o pipeline de hash funciona ponta a ponta.

(Vetor de referência da RFC 1321 para a string vazia.)

Verificar um instalador baixado

Arquivo: setup.bin (3 bytes, conteúdo: abc)
MD5 calculado: 900150983cd24fb0d6963f7d28e17f72
MD5 do fornecedor: 900150983cd24fb0d6963f7d28e17f72

Corresponde -> arquivo copiado ou baixado corretamente.
Divergente -> faça novo download, os bytes foram corrompidos no caminho.

(O valor MD5 é o vetor de referência da RFC 1321 para a entrada de 3 bytes
'abc'. Substitua a entrada pelo instalador real na
prática; a saída do algoritmo é determinística.)

Comparar duas versões de documento

report-v1.txt  (0 bytes)  -> MD5: d41d8cd98f00b204e9800998ecf8427e
report-v2.txt  (3 bytes, conteúdo: abc)
                               -> MD5: 900150983cd24fb0d6963f7d28e17f72

Hashes diferentes = conteúdo diferente. Mesmo a mudança de um caractere
produz um MD5 totalmente diferente, e é assim que as verificações de integridade funcionam.

(Ambos os valores são vetores de referência MD5 da RFC 1321.)

String hello world vs arquivo

MD5("hello")    = 5d41402abc4b2a76b9719d911017c592
MD5("hello\n")  = b1946ac92492d2347c6235b4d2611184

Uma quebra de linha final muda o digest, então um arquivo chamado hello.txt
com esse conteúdo mas sem \n final corresponde à primeira linha, e
um salvo com \n final corresponde à segunda. Essa é uma
pegadinha comum ao comparar com um MD5 publicado que foi
gerado em outro sistema operacional.

Perguntas frequentes

O arquivo é enviado para um servidor?

Não. O MD5 é calculado localmente no seu navegador usando a File API. Os bytes são lidos para a memória em pedaços e o hash é gerado sem sair do dispositivo. Você pode confirmar na aba Network enquanto roda o hash.

MD5 ainda é seguro de usar?

Não para segurança. O MD5 está quebrado desde 2004 — colisões podem ser geradas rapidamente, então ele não deve ser usado para assinaturas digitais, armazenamento de senhas ou verificações antiviolação. Continua útil como um checksum rápido para detectar corrupção acidental (erros de download, falhas de disco).

Por que às vezes vejo MD5 em minúsculo e às vezes em maiúsculo?

MD5 produz 128 bits = 16 bytes = 32 caracteres hexadecimais. Se esses caracteres hex são exibidos em maiúsculo ou minúsculo é puramente uma escolha de exibição; os bytes são idênticos e qualquer verificador deveria comparar sem distinguir maiúsculas e minúsculas.

Quão grande pode ser o arquivo que eu gero hash aqui?

Navegadores modernos em desktop aguentam vários GB antes de ficar sem memória. Em celular o limite é mais apertado — algumas centenas de MB é o normal. Para arquivos muito grandes, use um comando do sistema (md5sum no Linux, certutil -hashfile no Windows, md5 no macOS), que faz streaming do disco.

Por que meu MD5 difere do resultado de outra ferramenta?

Quase sempre porque o conteúdo difere por algum byte: quebras de linha diferentes (CRLF vs LF), um BOM UTF-8, espaço em branco no final, ou uma versão diferente do arquivo. O hash em si é determinístico, então uma entrada idêntica produz uma saída idêntica em qualquer implementação MD5 conforme.

Qual a diferença entre MD5 de texto e MD5 de arquivo?

O MD5 gera hash de bytes, não de caracteres. 'MD5 de texto' primeiro codifica a string (geralmente como UTF-8) e depois gera o hash desses bytes; 'MD5 de arquivo' lê os bytes do arquivo diretamente. A mesma string salva como UTF-8 versus UTF-16 vai produzir valores MD5 diferentes.

Posso usar MD5 para detectar arquivos duplicados?

Sim, com a ressalva de que as colisões conhecidas do MD5 significam que um agente malicioso poderia fabricar dois arquivos diferentes com o mesmo MD5. Para detecção de duplicatas acidentais (fotos, downloads), o MD5 é rápido e confiável o bastante. Para deduplicação confiável, use SHA-256.