logo
GeekFormat

Hash MD5

Entrada0 caracteres · 0 bytes
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

Ferramenta de hash MD5 online gratuita. Modos texto/arquivo/lote/HMAC-MD5, UTF-8/Latin1, maiúsculas, agrupamento de 8 caracteres. ⚠️ MD5 está quebrado — NÃO use para armazenar senhas.

Sugestões Relacionadas

Casos de uso

  • Integridade de arquivos: calcule MD5 após download para verificar contra somas de verificação oficiais
  • Geração de resumos em lote para arquivos de configuração ou notas de versão
  • Assinatura HMAC-MD5 para integração com sistemas legados
  • Deduplicação de dados via comparação rápida MD5
  • Geração de chaves de cache como identificadores únicos curtos
  • Aprendizado: entenda algoritmos hash comparando saídas MD5/SHA-1/SHA-256

Recursos

  • Quatro modos: Texto, Arquivo, Lote linha por linha e HMAC-MD5 cobrindo cenários comuns de soma de verificação
  • Codificação UTF-8/Latin1 selecionável para combinar com entradas de diferentes sistemas
  • Saída em maiúsculas e agrupamento de 8 caracteres para legibilidade humana
  • Hashing fragmentado de arquivos: leitura incremental para arquivos grandes evita problemas de memória
  • Modo lote: cada linha é hasheada independentemente com saída original→hash
  • Cópia de resultados com um clique

Como Usar

  1. Selecione o modo: Texto, Arquivo, Lote ou HMAC-MD5
  2. Configure parâmetros: codificação, maiúsculas, agrupamento de 8 caracteres
  3. Digite texto, carregue arquivo ou cole conteúdo em lote
  4. Copie o resultado hash para verificação ou scripts

Perguntas frequentes

Para que o MD5 é comumente usado?

MD5 é comumente usado para verificação de integridade de arquivos (como verificar downloads), geração rápida de resumos, compatibilidade com sistemas legados, chaves de cache e deduplicação de dados em cenários não relacionados à segurança. MD5 produz 128 bits (32 caracteres hexadecimais) e é muito rápido, adequado para cenários de verificação com baixos requisitos de segurança.

MD5 vs SHA-256?

MD5 produz 128 bits (32 hex) e é muito rápido mas quebrado; SHA-256 produz 256 bits (64 hex), é mais lento mas não tem ataques de colisão práticos e é preferido para usos críticos de segurança.

Ferramenta SHA-256

Por que o MD5 não é seguro para senhas?

MD5 é extremamente rápido — GPUs modernas podem calcular bilhões de hashes por segundo, e rainbow tables quebram senhas comuns rapidamente. Para armazenamento de senhas use bcrypt, scrypt ou Argon2.

Gerador de Senhas

MD5 está quebrado — ainda posso usá-lo?

Absolutamente NÃO para segurança (assinaturas digitais, senhas, TLS). Mas para usos não seguros (verificação de corrupção de arquivos, deduplicação, chaves de cache), MD5 ainda é aceitável porque atacantes não têm incentivo para criar colisões.

Hashes MD5 podem ser "descriptografados"?

MD5 é unidirecional e não pode ser revertido matematicamente, mas rainbow tables e força bruta podem recuperar senhas fracas em segundos. É por isso que MD5 nunca deve ser usado para armazenar senhas.

Arquivos grandes causarão travamentos?

Não. A ferramenta usa leitura incremental fragmentada — arquivos não são carregados completamente na memória, então mesmo arquivos de vários GB são processados sem problemas com uma interface responsiva.

O que é HMAC-MD5 vs MD5 simples?

HMAC-MD5 é um hash com chave que requer uma chave secreta. Embora o MD5 simples esteja quebrado, HMAC-MD5 ainda é seguro quando a chave é desconhecida (embora a migração para HMAC-SHA256 seja recomendada).

Gerador HMAC

O que é MD5?

MD5 (Message-Digest Algorithm 5) é uma função hash de 128 bits projetada por Ronald Rivest em 1991 (RFC 1321), produzindo um resumo hexadecimal fixo de 32 caracteres a partir de entrada arbitrária. Amplamente usado para assinaturas digitais, verificação de certificados e armazenamento de senhas, MD5 foi quebrado pelo ataque de colisão de Wang et al. em 2004, e o malware Flame explorou colisões MD5 para falsificar um certificado CA confiável em 2008.

**Status de segurança**: NIST depreciou formalmente MD5 para assinaturas digitais no SP 800-131A (2011). No entanto, MD5 permanece útil para cenários não relacionados à segurança: verificações de integridade de arquivos contra corrupção acidental, deduplicação de dados e chaves de cache. A pergunta chave: um atacante se beneficiaria de criar uma colisão? Se não, a velocidade do MD5 é uma vantagem.

**Nunca use MD5 para armazenamento de senhas**: MD5 é extremamente rápido (bilhões de hashes/segundo em GPU), permitindo força bruta instantânea em senhas comuns. Armazenamento de senhas DEVE usar bcrypt, scrypt ou Argon2 — hashes lentos com fatores de custo configuráveis que tornam a força bruta inviável.

**HMAC-MD5 ainda é seguro**: embora o MD5 simples esteja quebrado, HMAC-MD5 (código de autenticação de mensagem hash com chave) permanece seguro quando a chave é desconhecida porque a construção HMAC não depende diretamente da resistência a colisões do hash. Migração para HMAC-SHA256 ainda é recomendada.

A ferramenta usa uma implementação MD5 em JavaScript puro (a API Web Crypto não suporta mais MD5). Todo o cálculo ocorre localmente no seu navegador — arquivos usam leitura incremental fragmentada e nunca são carregados para servidores.

术语表

Função Hash (Hash Function)
Uma função matemática que mapeia entradas de comprimento arbitrário para saídas de comprimento fixo. Boas funções hash fornecem unidirecionalidade, resistência a colisões e efeito avalanche.
Ataque de Colisão (Collision Attack)
Encontrar duas entradas distintas que produzem a mesma saída hash. Colisões MD5 foram demonstradas por Wang et al. em 2004, permitindo falsificar assinaturas digitais.
Ataque de Pré-imagem (Preimage Attack)
Encontrar uma entrada que produza uma saída hash determinada. Mais difícil que colisões, mas nova pesquisa de 2024 enfraqueceu significativamente a resistência a pré-imagem do MD5.
Tabela Arco-Íris (Rainbow Table)
Tabelas de consulta hash→texto simples pré-calculadas para quebrar rapidamente hashes de senhas fracas. Salgar derrota tabelas arco-íris.
HMAC (Hash-based Message Authentication Code)
Código de autenticação de mensagem baseado em hash usando uma chave secreta para integridade/autenticação de mensagens. HMAC-MD5 e HMAC-SHA256 são variantes comuns.Gerador HMAC
bcrypt
Um algoritmo de hash de senhas lento com sal incorporado e fator de custo configurável, tornando ataques de força bruta proibitivamente caros.
Soma de Verificação (Checksum)
Um pequeno valor fixo usado para verificar a integridade dos dados. MD5, SHA-1, SHA-256 são comumente usados como somas de verificação para detectar corrupção na transmissão.
Efeito Avalanche (Avalanche Effect)
Uma pequena mudança de entrada (até 1 bit) causa uma mudança drástica e imprevisível no hash de saída. MD5 ainda tem boas propriedades de avalanche, contribuindo para sua utilidade contínua em verificações não seguras.
RFC 1321
O padrão oficial MD5 submetido ao IETF por Ronald Rivest em 1992, descrevendo os passos do algoritmo e vetores de teste.
Hashing Fragmentado (Chunked Hashing)
Processar arquivos grandes em blocos em vez de carregar o arquivo inteiro na memória, atualizando incrementalmente o estado do hash.

Comparação de algoritmos de hash comuns

AlgoritmoBits de saídaComprimento HexSegurançaVelocidadeUso recomendado
MD5128 bits32 caracteres❌ Quebrado (colisões/pré-imagem)ExtremaSomas de verificação de arquivos, deduplicação, chaves de cache
SHA-1160 bits40 caracteres❌ Colisões (2017)RápidoGit, compatibilidade com sistemas legados
SHA-256256 bits64 caracteres✅ SeguroMédioAssinaturas digitais, certificados, blockchain
SHA-512512 bits128 caracteres✅ SeguroRápido (64 bits)Cenários de alta segurança, derivação de chaves
bcrypt-60 caracteres✅ Especializado para senhasLento (configurável)Armazenamento de senhas

Linha do tempo de eventos de segurança MD5

AnoEventoImpacto
1991Ron Rivest projeta MD5 (RFC 1321)Substitui o MD4 e se torna o algoritmo de hash principal
1996Primeira falha de pseudo-colisão descoberta no MD5Comunidade acadêmica começa a questionar a segurança do MD5
2004Equipe de Wang Xiaoyun demonstra ataque de colisão MD5Segurança de assinaturas digitais MD5 completamente quebrada
2008Malware Flame falsifica certificados CA via colisão MD5NIST deprecia oficialmente MD5 para assinaturas digitais
2011NIST SP 800-131A proíbe oficialmente MD5 para usos de segurançaSistemas do governo dos EUA eliminam gradualmente o MD5
2024Novo artigo sobre ataque de pré-imagem publicadoÚltima linha de defesa do MD5 (resistência a pré-imagem) é quebrada

Code Examples

MD5/Hashing in JavaScript (Web Crypto supports SHA, MD5 needs library)

// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
  const msgBuffer = new TextEncoder().encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
  return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);

// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5

MD5 Hashing in Python

import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash)  # b10a8db164e0754105b7a99be72e3fe5

# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
    md5 = hashlib.md5()
    with open(filepath, 'rb') as f:
        while chunk := f.read(chunk_size):
            md5.update(chunk)
    return md5.hexdigest()

# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)

MD5 Hashing in Java

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;

public class MD5Example {
    public static String md5(String input) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hash) sb.append(String.format("%02x", b));
        return sb.toString();
    }
    public static void main(String[] args) throws Exception {
        System.out.println(md5("Hello World"));
        // b10a8db164e0754105b7a99be72e3fe5
    }
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")

Authoritative References