Gerador de hash MD5

Calcule o resumo MD5 de 128 bits de um texto, de bytes em hex ou de um arquivo. O hash é atualizado enquanto você digita, e o campo Comparar com informa se ele confere com a soma de verificação esperada.

Todos os algoritmos

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Digite ou cole um texto, mude a entrada para Hex para informar bytes brutos ou abra um arquivo para calcular o hash exatamente dos bytes dele.
  2. Deixe Codificação de texto em UTF-8, a menos que o hash original tenha sido gerado a partir de um texto em outro conjunto de caracteres.
  3. Em Saída como, escolha hex (minúsculas), HEX (maiúsculas) ou Base64.
  4. Para conferir um download, cole o MD5 publicado no campo Comparar com e veja se aparece Confere.

O que é MD5?

O MD5 (Message-Digest Algorithm 5) foi criado por Ronald Rivest e publicado em 1992 como RFC 1321. Ele lê a entrada em blocos de 512 bits e produz um resumo de 128 bits, normalmente escrito como 32 caracteres hexadecimais ou 24 caracteres Base64. A mesma entrada sempre gera o mesmo resumo, e alterar um único bit da entrada muda cerca de metade dos bits da saída.

O hash é unidirecional: não existe chave nem forma de "descriptografar" um hash MD5 para recuperar a entrada. Os sites que prometem reverter MD5 procuram o hash em tabelas enormes de palavras e senhas vazadas já convertidas em hash, e é por isso que o MD5 sem salt de uma senha curta costuma ser encontrado em segundos.

O MD5 ainda é seguro?

Não contra um atacante. Xiaoyun Wang e seus colegas publicaram colisões práticas em 2004: duas entradas diferentes com o mesmo MD5. Depois vieram as colisões de prefixo escolhido: pesquisadores usaram uma delas para criar um certificado de CA falso em 2008 e, em 2012, o malware Flame usou outra para forjar um certificado que fazia seu código parecer assinado pela Microsoft. Hoje um notebook comum encontra uma colisão de MD5 em segundos, e a RFC 6151 afirma que o MD5 não é mais aceitável onde a resistência a colisões é necessária, como em assinaturas digitais.

O MD5 ainda serve como soma de verificação contra danos acidentais, como um download incompleto ou um bit invertido no disco, e também para chaves de cache ou para deduplicar dados confiáveis. Quando o arquivo ou a soma de verificação puderem vir de um atacante, use SHA-256.

Hex, Base64 e hashes que não conferem

O MD5 normalmente é exibido em hex, que é o formato produzido pelo md5sum. Alguns protocolos enviam os 16 bytes brutos em Base64, por exemplo o cabeçalho HTTP Content-MD5 usado por APIs de armazenamento em nuvem como a do Amazon S3. Escolha a saída Base64 ou converta um valor existente com Hex para Base64.

Se o seu MD5 for diferente do de outra ferramenta, os bytes de entrada são diferentes. As causas mais comuns são uma quebra de linha no final, finais de linha do Windows ou outra codificação de texto: "café" ocupa 5 bytes em UTF-8, mas 4 bytes em ISO-8859-1, e por isso os dois hashes não têm nada em comum.

$ echo "hello" | md5sum      # calcula o hash de "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # calcula o hash de "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 na linha de comando e no código

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

A Web Crypto API embutida nos navegadores não inclui o MD5, por isso esta página o calcula em JavaScript no seu dispositivo; nada é enviado. A tabela Todos os algoritmos, abaixo do resultado, mostra o SHA-1, o SHA-256, o SHA-384, o SHA-512, o CRC-32 e o CRC-32C da mesma entrada.

Exemplos

Entrada (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

Perguntas frequentes

É possível descriptografar um hash MD5?
Não. O MD5 é uma função de hash unidirecional, não uma criptografia, então não há nada para descriptografar; um "descriptografador de MD5" só consegue devolver uma entrada que já esteja nas tabelas dele. Se você precisar recuperar os dados originais depois, criptografe-os; ou, quando eles não precisarem ficar em segredo, codifique-os em Base64, que é totalmente reversível.
O MD5 é suficiente para verificar um download?

Ele detecta corrupção acidental de forma confiável. Mas, como colisões são baratas, alguém que prepare um arquivo com antecedência consegue criar um segundo arquivo, diferente, com o mesmo MD5. Para downloads em que a segurança importa, confira um hash SHA-256 obtido de uma fonte confiável ou uma assinatura.

Qual é o tamanho de um hash MD5?
128 bits, ou seja, 16 bytes: 32 caracteres em hex ou 24 caracteres em Base64 terminando em ==. Uma string hex de 32 caracteres também pode ser um hash MD4 ou NTLM; o Identificador de hash lista os candidatos.
Posso calcular o MD5 de um arquivo grande?
Sim. Abra o arquivo e o hash dos bytes dele é calculado no seu navegador, sem upload. O limite é a memória que o navegador pode usar, então, para arquivos de vários gigabytes, é melhor usar md5sum ou certutil.
Devo armazenar senhas em MD5?
Não. O MD5 foi projetado para ser rápido, então uma única GPU testa bilhões de palpites por segundo. Armazene senhas com Argon2id, scrypt, bcrypt ou PBKDF2, que adicionam um salt e são lentos de propósito. Para começar com senhas fortes, use o Gerador de senhas.