Gerador de Hash MD5

Gera hash MD5 de qualquer texto

Texto de Entrada

Roda localmente · Seguro para colar segredos

Hash MD5

O hash MD5 aparecerá aqui…

O Que É Hashing MD5?

MD5 (Message-Digest Algorithm 5) é uma função de hash criptográfico que produz um digest fixo de 128 bits (16 bytes) a partir de qualquer entrada, independentemente do seu tamanho. Publicado em 1992 por Ronald Rivest como RFC 1321, o MD5 foi projetado como um sucessor mais rápido do MD4 e rapidamente se tornou uma das funções de hash mais amplamente usadas na internet. O algoritmo processa a entrada em blocos de 512 bits por quatro rounds de 16 operações cada, usando uma função não linear diferente por round, para produzir uma impressão digital hexadecimal de 32 caracteres.

Uma função de hash é uma transformação unidirecional: dado um valor de entrada, você calcula o hash instantaneamente, mas tendo apenas o hash, não é possível recuperar a entrada original. Mesmo uma alteração de um único bit na entrada produz um digest completamente diferente — propriedade chamada de efeito avalanche. O MD5 mapeia um espaço de entrada infinito para um espaço de saída fixo de 128 bits, portanto colisões (duas entradas diferentes produzindo o mesmo hash) são matematicamente garantidas de existir, mas uma função de hash segura torna encontrá-las computacionalmente inviável.

Desde 2004, pesquisadores demonstraram ataques de colisão práticos contra o MD5, o que significa que ele não é mais considerado seguro para assinaturas digitais, certificados ou qualquer contexto onde a resistência a colisões seja necessária. No entanto, o MD5 continua amplamente usado para fins não relacionados à segurança: verificação de integridade de arquivos após downloads, geração de chaves de cache, deduplicação de conteúdo e criação de identificadores determinísticos a partir de strings. Para essas aplicações, a velocidade do algoritmo e o suporte ubíquo em bibliotecas o tornam uma escolha prática. Em 2008, Marc Stevens e colaboradores publicaram um ataque de colisão de prefixo escolhido, significando que um atacante pode criar dois documentos com prefixos arbitrários que compartilham o mesmo digest. Esta técnica foi demonstrada no Chaos Communication Congress de 2008 pela construção de um certificado de Autoridade de Certificação falso. O malware Flame de 2012 explorou colisões de prefixo escolhido para falsificar um certificado de assinatura de código da Microsoft, permitindo que o malware se disfarçasse como uma atualização legítima do Windows. Esses exploits do mundo real confirmaram que o algoritmo é criptograficamente comprometido para qualquer uso baseado em confiança e não deve ser utilizado onde um adversário pode influenciar as entradas sendo processadas.

Por Que Usar Este Gerador MD5?

Gere hashes MD5 instantaneamente sem instalar nada ou escrever código. Cole seu texto e obtenha o digest hex de 32 caracteres em tempo real.

Hash Instantâneo
A saída é atualizada enquanto você digita. Sem cliques em botões, sem espera — o digest MD5 aparece caractere por caractere conforme você modifica a entrada.
🔒
Processamento Privado
Todo o hashing é executado localmente no seu navegador usando JavaScript. O texto de entrada nunca sai do seu dispositivo e nunca é enviado a nenhum servidor.
📋
Copiar com Um Clique
Copie o hash para a área de transferência com um único clique. Alterne entre saída hexadecimal em minúsculas e maiúsculas para corresponder ao formato esperado pelo seu sistema.
🔍
Sem Conta Necessária
Sem cadastro, sem login, sem limites de uso. Abra a página e comece a gerar hashes imediatamente. Funciona em qualquer dispositivo com um navegador moderno.

Casos de Uso do MD5

Desenvolvimento Frontend
Gere hashes para cache busting de assets estáticos. Anexe um digest MD5 do conteúdo do arquivo às URLs de CSS e JavaScript para que os navegadores busquem a versão atualizada quando o conteúdo mudar.
Engenharia Backend
Crie chaves de cache determinísticas a partir de parâmetros de consulta complexos ou corpos de requisição. Hashes MD5 produzem chaves compactas de comprimento fixo que funcionam bem com Redis, Memcached e camadas de cache de CDN.
DevOps & CI/CD
Verifique a integridade de arquivos após transferências comparando checksums MD5. Muitos registros de pacotes e repositórios de artefatos publicam digests MD5 junto aos downloads para verificação rápida.
QA & Testes
Compare hashes MD5 de respostas de API, dumps de banco de dados ou arquivos de configuração para detectar mudanças inesperadas entre execuções de testes sem comparar o conteúdo completo.
Engenharia de Dados
Deduplique registros em pipelines ETL calculando hashes MD5 do conteúdo das linhas. Duas linhas com o mesmo hash são candidatas à deduplicação, reduzindo custos de armazenamento e processamento.
Aprendizado & Educação
Experimente com funções de hash para entender transformações unidirecionais, o efeito avalanche e por que a resistência a colisões importa para a segurança. MD5 é o hash mais simples e amplamente conhecido para estudar.

MD5 vs Outros Algoritmos de Hash

O MD5 é o mais rápido e compacto dos algoritmos de hash comuns, mas oferece as garantias de segurança mais fracas. A tabela abaixo compara tamanhos de digest, padrões e casos de uso adequados para cada algoritmo.

AlgoritmoTamanho do DigestComprimento HexPadrãoMelhor Para
MD5128 bits32 hex chars1992 / RFC 1321Checksums, non-security fingerprints
SHA-1160 bits40 hex chars1995 / RFC 3174Legacy git commits (being replaced)
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, backup standard
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Como o MD5 Funciona

O MD5 processa a entrada por meio de uma construção Merkle-Damgård: a mensagem é preenchida para um múltiplo de 512 bits, dividida em blocos, e cada bloco é alimentado por quatro rounds de 16 operações bitwise que misturam a entrada com constantes pré-calculadas derivadas de seno. O resultado é um estado de 128 bits que se torna o digest final.

Cada round aplica uma função auxiliar não linear distinta a três dos quatro valores de estado de 32 bits (A, B, C, D). O Round 1 usa F(B,C,D) = (B AND C) OR (NOT B AND D) — um seletor condicional bitwise. O Round 2 usa G(B,C,D) = (B AND D) OR (C AND NOT D) — um seletor complementar. O Round 3 usa H(B,C,D) = B XOR C XOR D — uma função de paridade. O Round 4 usa I(B,C,D) = C XOR (B OR NOT D) — um combinador assimétrico. Essas quatro funções garantem que cada bit da entrada influencie o digest de saída, produzindo o efeito avalanche que faz com que pequenas mudanças na entrada causem grandes e imprevisíveis alterações no hash resultante.

Input: "hello world"
MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3
(128 bits = 16 bytes = 32 hex characters)

O algoritmo procede em cinco estágios: (1) acrescenta um bit 1, depois zeros, até que o comprimento da mensagem seja 448 mod 512; (2) acrescenta o comprimento original da mensagem como um inteiro de 64 bits little-endian; (3) inicializa quatro variáveis de estado de 32 bits (A, B, C, D) com constantes fixas; (4) processa cada bloco de 512 bits por 64 operações usando quatro funções não lineares (F, G, H, I), uma por round de 16 operações; (5) adiciona o estado resultante ao total acumulado e produz o hash final de 128 bits em ordem de bytes little-endian.

Exemplos de Código

Como gerar hashes MD5 nas linguagens e ambientes mais populares. Observe que o MD5 não está disponível na Web Crypto API do navegador — use uma biblioteca ou Node.js.

JavaScript (Web Crypto — browser & Node.js)
// MD5 is not available in Web Crypto API (it only supports SHA-*)
// Use a library like 'js-md5' or the Node.js crypto module

// Node.js (built-in crypto)
const crypto = require('crypto')
const hash = crypto.createHash('md5').update('hello world').digest('hex')
console.log(hash) // → "5eb63bbbe01eeed093cb22bb8f5acdc3"

// With Unicode input
crypto.createHash('md5').update('cafe\u0301').digest('hex')
// → "4fad076bae205e95bec9dacea498e2ab"
Python
import hashlib

# Basic MD5 hash
result = hashlib.md5(b'hello world').hexdigest()
print(result)  # → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a string (must encode to bytes first)
text = 'hello world'
hashlib.md5(text.encode('utf-8')).hexdigest()
# → "5eb63bbbe01eeed093cb22bb8f5acdc3"

# Hash a file
with open('file.bin', 'rb') as f:
    md5 = hashlib.md5()
    for chunk in iter(lambda: f.read(8192), b''):
        md5.update(chunk)
    print(md5.hexdigest())
Go
package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 5eb63bbbe01eeed093cb22bb8f5acdc3
}
CLI (Linux / macOS)
# Using md5sum (Linux) or md5 (macOS)
echo -n "hello world" | md5sum
# → 5eb63bbbe01eeed093cb22bb8f5acdc3  -

# macOS
echo -n "hello world" | md5
# → 5eb63bbbe01eeed093cb22bb8f5acdc3

# Hash a file
md5sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl md5
# → MD5(stdin)= 5eb63bbbe01eeed093cb22bb8f5acdc3

Perguntas Frequentes

O MD5 ainda é seguro para usar?
Não é seguro para aplicações sensíveis à segurança como assinaturas digitais, certificados TLS ou hashing de senhas. Ataques de colisão práticos foram demonstrados desde 2004, e ataques de colisão de prefixo escolhido são agora viáveis em segundos em hardware comum. Para usos não relacionados à segurança — checksums, chaves de cache, deduplicação de conteúdo — o algoritmo permanece uma escolha prática e amplamente suportada.
Qual é a diferença entre MD5 e SHA-256?
O algoritmo MD5 produz um digest de 128 bits (32 caracteres hex) e é vulnerável a ataques de colisão. SHA-256 produz um digest de 256 bits (64 caracteres hex) e não possui ataques práticos conhecidos. SHA-256 é aproximadamente 30-40% mais lento que o algoritmo mais antigo no mesmo hardware, mas a margem de segurança adicional o torna a escolha padrão para qualquer aplicação onde a verificação de integridade deve resistir a adulteração adversarial.
É possível reverter um hash MD5 para a entrada original?
Não. Esta função de hash é unidirecional por design — ela descarta informações durante o hashing. No entanto, para entradas curtas ou comuns, atacantes podem usar rainbow tables (mapeamentos pré-calculados de hash para texto claro) ou força bruta para encontrar a entrada original. Por isso, nunca deve ser usado para armazenamento de senhas. Use bcrypt, scrypt ou Argon2.
Por que ferramentas diferentes às vezes produzem hashes MD5 diferentes para o mesmo texto?
A causa mais comum são diferenças de codificação. O algoritmo opera em bytes, não em caracteres. A string 'hello' produz hashes diferentes quando codificada como UTF-8 vs. UTF-16 vs. Latin-1. Outro problema frequente são novas linhas finais: echo na maioria dos shells acrescenta uma nova linha (\n) a menos que você use echo -n. Sempre verifique os bytes exatos sendo processados.
Quanto tempo leva para calcular um hash MD5?
O algoritmo é extremamente rápido. Em hardware moderno, processa dados a 3-6 GB/s em um único núcleo de CPU. Uma GPU pode calcular bilhões de checksums por segundo. Essa velocidade é uma vantagem para verificação de arquivos, mas uma desvantagem para hashing de senhas, onde algoritmos mais lentos (bcrypt, Argon2) são preferidos especificamente porque resistem a ataques de força bruta.
O que é uma colisão MD5 e por que isso importa?
Uma colisão ocorre quando duas entradas diferentes produzem o mesmo digest de hash. Em 2004, Xiaoyun Wang demonstrou a primeira colisão prática contra o MD5. Em 2012, o malware Flame explorou uma colisão para falsificar um certificado de assinatura de código da Microsoft. Hoje, colisões de prefixo idêntico podem ser calculadas em menos de um minuto. Isso torna o algoritmo inadequado para qualquer aplicação que dependa de resistência a colisões, como assinaturas digitais ou fixação de certificados.
Devo usar MD5 ou CRC32 para checksums de arquivos?
Este checksum é uma escolha melhor que CRC32 para verificação de integridade de arquivos. CRC32 é um código de detecção de erros de 32 bits projetado para capturar corrupção acidental na transmissão, não adulteração intencional. Seu pequeno espaço de saída torna colisões trivialmente fáceis de construir. O MD5 fornece um digest de 128 bits com resistência a colisões acidentais muito mais forte. Para cenários adversariais (verificação de downloads de fontes não confiáveis), use SHA-256.