Hash MD5
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.
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.
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 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-256MD5 é 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 SenhasAbsolutamente 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.
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.
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.
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 HMACMD5 (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.
| Algoritmo | Bits de saída | Comprimento Hex | Segurança | Velocidade | Uso recomendado |
|---|---|---|---|---|---|
MD5 | 128 bits | 32 caracteres | ❌ Quebrado (colisões/pré-imagem) | Extrema | Somas de verificação de arquivos, deduplicação, chaves de cache |
SHA-1 | 160 bits | 40 caracteres | ❌ Colisões (2017) | Rápido | Git, compatibilidade com sistemas legados |
SHA-256 | 256 bits | 64 caracteres | ✅ Seguro | Médio | Assinaturas digitais, certificados, blockchain |
SHA-512 | 512 bits | 128 caracteres | ✅ Seguro | Rápido (64 bits) | Cenários de alta segurança, derivação de chaves |
bcrypt | - | 60 caracteres | ✅ Especializado para senhas | Lento (configurável) | Armazenamento de senhas |
| Ano | Evento | Impacto |
|---|---|---|
1991 | Ron Rivest projeta MD5 (RFC 1321) | Substitui o MD4 e se torna o algoritmo de hash principal |
1996 | Primeira falha de pseudo-colisão descoberta no MD5 | Comunidade acadêmica começa a questionar a segurança do MD5 |
2004 | Equipe de Wang Xiaoyun demonstra ataque de colisão MD5 | Segurança de assinaturas digitais MD5 completamente quebrada |
2008 | Malware Flame falsifica certificados CA via colisão MD5 | NIST deprecia oficialmente MD5 para assinaturas digitais |
2011 | NIST SP 800-131A proíbe oficialmente MD5 para usos de segurança | Sistemas do governo dos EUA eliminam gradualmente o MD5 |
2024 | Novo artigo sobre ataque de pré-imagem publicado | Última linha de defesa do MD5 (resistência a pré-imagem) é quebrada |
// 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); // b10a8db164e0754105b7a99be72e3fe5import 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)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")