Initializing, please wait a moment

Como Ler e Comparar Hashes MD5 Corretamente: Maiusculas, Espacos, Formato Hex

Apos gerar um hash no MD5 Converter, coloque ambas as strings em minusculas, remova espacos em branco, retire separadores de dois pontos e compare todos os 32 caracteres hexadecimais. Maiusculas, espacos iniciais e formatacao com dois pontos sao diferencas esteticas - os hashes sao iguais se os 16 bytes subjacentes sao identicos.

Comprimento da string de hashAlgoritmoUso comum
32 caracteres hexMD5Verificacoes de integridade de arquivo, checksums legados
40 caracteres hexSHA-1Objetos Git, assinatura de codigo antiga
64 caracteres hexSHA-256Downloads de seguranca modernos, gerenciadores de pacote

Decisao em 30 segundos. Dois valores MD5 batem quando, apos converter ambos para minusculas e remover espacos e separadores, os 32 caracteres hex coincidem posicao por posicao. As diferencas de maiuscula/minuscula, espacos, BOM UTF-8 e dois pontos sao apenas cosmeticas e continuam sendo match; ja qualquer digito hex diferente, um comprimento diferente de 32, ou um caractere fora de `0-9 a-f` significa que as entradas foram diferentes. O detalhe de cada caso esta nas secoes abaixo.

O que um hash MD5 e de fato

Um hash MD5 e a saida de uma funcao que pega qualquer entrada - uma string de texto, os bytes de um arquivo, um stream de download - e produz um digest fixo de 16 bytes (128 bits). Os bytes sao o valor canonico: e isso que "o MD5" realmente e. A string hexadecimal de 32 caracteres que voce ve na tela e apenas uma codificacao legivel desses 16 bytes (cada byte vira dois caracteres hex). Os mesmos 16 bytes podem ser escritos em maiusculas, em minusculas ou separados por dois pontos e continuam sendo o MESMO hash - os bytes nao mudam (o detalhe de cada forma esta abaixo).

Para gerar um MD5 novo que voce pode comparar contra um valor esperado publicado, cole o texto original em MD5 Converter: cole a string e copie o resultado. Se a entrada era um arquivo em vez de uma string, veja MD5 vs SHA-256 - Quando Hash para uma decisao de ferramenta; as regras de comparacao abaixo sao as mesmas em qualquer direcao.

Quatro divergencias cosmeticas que ainda significam match

See quatro diferencas cosmeticas de MD5 que ainda significam uma correspondencia: maiusculas/minusculas, espacos, byte-order mark, separadores.
Quatro diferencas cosmeticas que nao sao discrepancias reais: maiusculas/minusculas, espacos, prefixo BOM, separadores de dois pontos.

Quatro diferencas comuns no nivel da tela parecem mismatch mas representam o mesmo digest de 16 bytes.

  • Maiusculas vs minusculas. Hex e insensivel a caixa. `D41D8CD98F00B204E9800998ECF8427E` e `d41d8cd98f00b204e9800998ecf8427e` sao o mesmo hash. A forma em minusculas e a convencao canonica usada pela maioria das ferramentas modernas, incluindo o MD5 Converter gratis; algumas ferramentas antigas (e muitas notas de release impressas) usam maiusculas. Passe ambos para minusculas antes de comparar.
  • Espaco em branco no inicio ou no final. Um espaco, tab ou nova linha extra copiado junto com o hash e invisivel na tela mas quebra um compare estrito caractere a caractere. Remova os espacos das duas pontas antes de comparar.
  • Um byte-order mark (BOM) invisivel. Quando o hash esperado foi publicado em um arquivo `.txt` salvo como UTF-8 com BOM, copiar a primeira linha arrasta uma sequencia invisivel de 3 bytes (`EF BB BF`) junto com o hash. O compare parece uma string de 35 caracteres contra uma de 32. Salve o arquivo de origem novamente como UTF-8 sem BOM, ou retire os 3 primeiros bytes da string copiada.
  • Bytes separados por dois pontos ou espacos. Algumas ferramentas antigas formatam o hash como `d4:1d:8c:d9:8f:00:b2:04:e9:80:09:98:ec:f8:42:7e`. Tire esses separadores antes de comparar.

Tres sinais de que as entradas nao foram as mesmas

Se, apos limpar as quatro diferencas cosmeticas acima, as strings ainda diferem, verifique os tres sinais a seguir.

  • Qualquer digito hex diferente. MD5 tem a propriedade avalanche: uma diferenca de um bit na entrada normalmente vira cerca de metade dos bits na saida. Entao mesmo um caractere hex diferente em qualquer lugar da string de 32 caracteres significa que as entradas nao foram as mesmas. Nao existe "quase igual" para hashes - ou todo caractere bate (apos as limpezas cosmeticas acima) ou as entradas divergiram.
  • Um comprimento total diferente apos as limpezas. Um digest hex MD5 tem exatamente 32 caracteres. Outros comprimentos significam outros algoritmos: uma string hex de 40 caracteres e SHA-1; 64 caracteres e SHA-256; 8 caracteres e CRC32 (frequentemente mostrado em decimal, nao hex). Se o seu "MD5 esperado" tem 40 ou 64 caracteres, quem publicou usou um algoritmo diferente e voce precisa de outra ferramenta.
  • Caracteres nao-hex. Hex MD5 contem apenas `0-9` e `a-f` (ou `A-F`). Um `g`, `h`, `z` ou qualquer outra letra alem de `f` nao e um digito hex MD5. A causa mais comum e a string ser base64 (`/=+` e faixa de letras maior) ou base32 (`a-z` e `2-7`) - uma codificacao diferente dos mesmos 16 bytes, mas as regras de comparacao sao entao diferentes (em base64 sensibilidade a caixa importa).

O fluxo de comparacao em 5 passos

See cinco passos para comparar hashes MD5 corretamente: minusculas, remover espacos, retirar separadores, confirmar 32 digitos hex.
Cinco passos para uma comparacao MD5 confiavel: minusculas, remover espacos, retirar separadores, confirmar 32 digitos hex.

Passe os dois hashes pelos mesmos cinco passos e a comparacao se torna mecanica.

  1. Converta ambas as strings para minusculas. Isso remove diferencas de caixa no hex.
  2. Remova espacos em branco no inicio e no final. Isso remove as diferencas de espaco em volta.
  3. Retire separadores. Remova qualquer `:`, ` ` (espaco), `-` ou outro caractere nao-hex. O resultado deve ser uma unica string de 32 caracteres com digitos hex.
  4. Confirme que o comprimento e 32 e que os caracteres estao todos em `0-9 a-f`. Se algum dos lados falhar nesta verificacao, voce esta comparando algo que nao e um digest hex MD5 (ou ainda ha contaminacao de BOM / caracteres invisiveis; cole a string em um inspetor hex para detectar).
  5. Compare caractere a caractere. Se os passos 1-4 produziram duas strings hex identicas de 32 caracteres, os hashes batem - os 16 bytes por baixo sao iguais e as entradas foram as mesmas. Se diferem em qualquer posicao, as entradas foram diferentes.

Quando MD5 e suficiente - e quando nao e

MD5 e apropriado para checagens de corrupcao acidental onde nao ha adversario envolvido: confirmar que um download terminou sem bit-rot quando quem publicou postou o MD5 esperado junto do arquivo; verificar a transferencia de arquivo de um colega contra o MD5 que ele enviou no mesmo email. A probabilidade de dois arquivos nao relacionados produzirem o mesmo MD5 por acaso e infimamente pequena. Entao se voce gerou um hash em MD5 Converter e ele bate com o valor publicado apos o fluxo de 5 passos, o arquivo e o arquivo que quem publicou queria.

MD5 NAO e apropriado para casos adversariais - armazenamento de senhas, assinaturas de seguranca, resistencia a forja. Pesquisadores hoje geram dois arquivos diferentes com o mesmo MD5 em segundos em hardware comum. Para esses casos a ferramenta certa e um algoritmo diferente. Veja MD5 vs SHA-256 - Quando Hash para a questao de escolha de algoritmo, Alternativas a MD5 - bcrypt vs Argon2id vs SHA-256 para a resposta moderna de armazenamento de senhas, e Por Que MD5 Nao Pode Ser Descriptografado para a pergunta relacionada "tenho um MD5 e quero o texto original".

"Quase igual" nao existe para MD5

O guia nao afirma que hashes podem ser "quase iguais". Dois hashes MD5 ou batem exatamente apos normalizacao de caixa e espacos, ou nao batem. A leitura proibida "os hashes provavelmente estao corretos porque parecem quase iguais" nao se aplica ao MD5: hashes ou batem exatamente sob as regras de normalizacao ou nao batem.

A propriedade avalanche da funcao de hash torna essa garantia mecanica: uma mudanca de um bit na entrada vira aproximadamente metade dos bits da saida, entao uma quase-coincidencia no hash nunca corresponde a uma quase-coincidencia nas entradas. Se seu hash do MD5 Converter diverge do valor esperado publicado em algum digito hex, os bytes que voce hasheou nao sao os bytes que quem publicou hasheou - baixe o arquivo de novo ou refaca a fonte. Um caractere hex de diferenca e "as entradas divergiram, refaca tudo", nao "quase correto, refaca so o ultimo bloco".

Guias relacionados de desenvolvedor e MD5: MD5 vs SHA-256 - Quando Hash (escolha de algoritmo), Por Que MD5 Nao Pode Ser Descriptografado (por que MD5 nao e reversivel), MD5 para Texto - Por Que Voce Nao Pode Converter de Volta (contraparte operacional), e Alternativas a MD5 - bcrypt vs Argon2id vs SHA-256 (alternativas modernas para uso adversarial), e link de download nao aparece apos conversao - cinco solucoes (se o conversor termina sem mostrar link de download).