logo
GeekFormat

Hash MD5

Entrada0 caràcters · 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

Eina de hash MD5 en línia gratuïta. Modes text/fitxer/massiu/HMAC-MD5, UTF-8/Latin1, majúscules, agrupació de 8 caràcters. ⚠️ MD5 està compromès — NO l'utilitzeu per a emmagatzematge de contrasenyes.

Relacionats

Casos d'ús

  • Integritat de fitxers: calculeu MD5 després de descarregar per comparar amb els checksums oficials
  • Generació massiva de resums per a fitxers de configuració o notes de llançament
  • Signatura HMAC-MD5 per a integració amb sistemes antics
  • Desduplicació de dades mitjançant comparació ràpida de MD5
  • Generació de claus de memòria cau com a identificadors únics curts
  • Educació: entendre els algorismes de hash comparant sortides MD5/SHA-1/SHA-256

Característiques

  • Quatre modes: Text, Fitxer, Massiu per línies i HMAC-MD5, cobrint escenaris de checksum comuns
  • Codificació UTF-8/Latin1 seleccionable per a diferents entrades de sistema
  • Visualització en majúscules i agrupació de 8 caràcters per a llegibilitat
  • Hash de fitxers per fragments: lectura incremental per a fitxers grans evita problemes de memòria
  • Mode massiu: cada línia es hasheja independentment amb sortida original→hash
  • Còpia de resultats amb un sol clic

Com usar-ho

  1. Seleccioneu mode: Text, Fitxer, Massiu o HMAC-MD5
  2. Configureu opcions: codificació, majúscules, agrupació de 8 caràcters
  3. Introduïu text, carregueu fitxer o enganxeu contingut massiu
  4. Copieu el resultat del hash per a verificació o scripts

Preguntes freqients

Per a què s'utilitza normalment MD5?

MD5 s'utilitza normalment per a la comprovació d'integritat de fitxers (per exemple, verificació de descàrregues), generació ràpida de resums, compatibilitat amb sistemes antics, claus de memòria cau i desduplicació de dades en escenaris no relacionats amb la seguretat. MD5 produeix 128 bits (32 caràcters hexadecimals) i és extremadament ràpid, adequat per a escenaris de verificació no crítics.

MD5 vs SHA-256?

MD5 produeix 128 bits (32 hex), extremadament ràpid però compromès; SHA-256 produeix 256 bits (64 hex), més lent però sense atacs de col·lisió pràctics i preferit per a aplicacions crítiques.

Eina SHA-256

Per què MD5 no és segur per a contrasenyes?

MD5 és extremadament ràpid — les GPU modernes poden calcular milers de milions de hashes per segon, i les taules de l'arc de Sant Martí trenquen les contrasenyes comunes a l'instant. Utilitza bcrypt, scrypt o Argon2 per a l'emmagatzematge de contrasenyes.

Generador de Contrasenyes

MD5 està compromès — encara el puc utilitzar?

Absolutament NO per a seguretat (signatures digitals, contrasenyes, TLS). Però per a aplicacions no relacionades amb la seguretat (comprovació de corrupció de fitxers, desduplicació, claus de memòria cau) MD5 encara és adequat, ja que els atacants no tenen incentius per crear col·lisions.

Els hashes MD5 es poden 'desxifrar'?

MD5 és una funció unidireccional i matemàticament no es pot invertir, però les taules de l'arc de Sant Martí i la força bruta poden recuperar contrasenyes febles en qüestió de segons. Per això MD5 no s'ha d'utilitzar mai per a l'emmagatzematge de contrasenyes.

Els fitxers grans causaran bloquejos?

No. L'eina utilitza lectura incremental per fragments — els fitxers no es carreguen completament a la memòria, de manera que fins i tot fitxers de multi-gigabytes es processen sense problemes amb una interfície responsiva.

Què és HMAC-MD5 en comparació amb MD5 simple?

HMAC-MD5 és un hash amb clau que requereix una clau secreta. Tot i que MD5 simple està compromès, HMAC-MD5 roman segur quan la clau no es coneix (tot i que es recomana la migració a HMAC-SHA256).

Generador HMAC

Què és MD5?

MD5 (Message-Digest Algorithm 5) és una funció de hash de 128 bits dissenyada per Ronald Rivest el 1991 (RFC 1321), que produeix un resum hexadecimal fix de 32 caràcters a partir d'una entrada arbitrària. Antany àmpliament utilitzat per a signatures digitals, verificació de certificats i emmagatzematge de contrasenyes, MD5 va ser compromès per l'atac de col·lisió de Wang et al. el 2004, i el programari maliciós Flame va abusar de les col·lisions MD5 per falsificar un certificat CA de confiança el 2008.

**Estat de Seguretat**: El NIST va rebutjar oficialment MD5 per a signatures digitals a SP 800-131A (2011). Tanmateix, MD5 roman útil per a escenaris no relacionats amb la seguretat: comprovació d'integritat de fitxers contra corrupció aleatòria, desduplicació de dades i claus de memòria cau. La pregunta clau és: un atacant es beneficiaria de crear una col·lisió? Si no, la velocitat de MD5 és un avantatge.

**MAI utilitzeu MD5 per a emmagatzematge de contrasenyes**: MD5 és extremadament ràpid (milers de milions de hashes/segon en GPU), cosa que permet trencar contrasenyes comunes a l'instant mitjançant força bruta. L'emmagatzematge de contrasenyes HA d'utilitzar bcrypt, scrypt o Argon2 — hashes lents amb factors de cost ajustables que fan que la força bruta sigui inviable.

**HMAC-MD5 encara és segur**: tot i que MD5 simple està compromès, HMAC-MD5 (Codi d'Autenticació de Missatges basat en Hash amb clau) roman segur quan la clau no es coneix, perquè la construcció HMAC no depèn directament de la resistència a col·lisions del hash subjacent. No obstant això, es recomana la migració a HMAC-SHA256.

L'eina utilitza una implementació de MD5 en JavaScript pur (l'API Web Crypto ja no admet MD5). Tots els càlculs es realitzen localment al vostre navegador — els fitxers utilitzen lectura incremental per fragments i mai es carreguen als servidors.

术语表

Funció de Hash (Hash Function)
Una funció matemàtica que mapeja una entrada de longitud arbitrària a una sortida de longitud fixa. Les bones funcions de hash proporcionen unidireccionalitat, resistència a col·lisions i efecte allau.
Atac de Col·lisió (Collision Attack)
Trobar dues entrades diferents que produeixin la mateixa sortida de hash. Les col·lisions MD5 van ser demostrades per Wang et al. el 2004, permetent la falsificació de signatures digitals.
Atac de Preimatge (Preimage Attack)
Trobar una entrada que produeixi una sortida de hash determinada. Més difícil que les col·lisions, però la nova investigació el 2024 ha debilitat significativament la resistència a preimatge de MD5.
Taula de l'Arc de Sant Martí (Rainbow Table)
Taules de cerca hash→text clar precalculades per trencar ràpidament hashes de contrasenyes febles. El salinització derrota les taules de l'arc de Sant Martí.
HMAC (Codi d'Autenticació de Missatges basat en Hash)
Un codi d'autenticació de missatges basat en hash que utilitza una clau secreta per a la integritat/autenticació de missatges. HMAC-MD5 i HMAC-SHA256 són variants comunes.Generador HMAC
bcrypt
Un algorisme de hash de contrasenyes lent amb salinització integrada i factor de cost ajustable, fent que els atacs de força bruta siguin excessivament costosos.
Checksum
Un petit valor fix utilitzat per verificar la integritat de les dades. MD5, SHA-1, SHA-256 s'utilitzen habitualment com a checksums per detectar corrupció durant la transmissió.
Efecte Allau (Avalanche Effect)
Un petit canvi a l'entrada (fins i tot 1 bit) provoca un canvi dràstic i impredictible a la sortida del hash. MD5 encara té bones propietats d'efecte allau, contribuint a la seva utilitat continuada en comprovacions no relacionades amb la seguretat.
RFC 1321
L'estàndard oficial de MD5, presentat a l'IETF per Ronald Rivest el 1992, descrivint els passos de l'algorisme i els vectors de prova.
Hash per Fragments (Chunked Hashing)
Processar fitxers grans en blocs en lloc de carregar tot el fitxer a la memòria, amb actualitzacions incrementals de l'estat del hash.

Comparació d'Algorismes de Hash Comuns

AlgorismeBits de SortidaLongitud HexSeguretatVelocitatÚs Recomanat
MD5128 bits32 caràcters❌ Compromès (col·lisions/preimatge)Extremadament ràpidChecksums de fitxers, desduplicació, claus de memòria cau
SHA-1160 bits40 caràcters❌ Col·lisions (2017)RàpidGit, compatibilitat amb sistemes antics
SHA-256256 bits64 caràcters✅ SegurMitjanaSignatures digitals, certificats, blockchain
SHA-512512 bits128 caràcters✅ SegurRàpid (64-bit)Escenaris d'alta seguretat, derivació de claus
bcrypt-60 caràcters✅ Específic per a contrasenyesLent (ajustable)Emmagatzematge de contrasenyes

Cronologia d'Esdeveniments de Seguretat de MD5

AnyEsdevenimentImpacte
1991Ron Rivest dissenya MD5 (RFC 1321)Substitueix MD4 i es converteix en l'algorisme de hash estàndard
1996Es descobreix el primer defecte de pseudo-col·lisió en MD5La comunitat acadèmica expressa preocupació
2004L'equip de Wang Xiaoyun demostra un atac de col·lisió MD5La seguretat de les signatures digitals MD5 es trenca completament
2008El programari maliciós Flame falsifica un certificat CA mitjançant col·lisió MD5El NIST rebutja oficialment MD5 per a signatures digitals
2011NIST SP 800-131A prohibeix oficialment MD5 per a finalitats de seguretatEls sistemes governamentals dels EUA eliminen MD5 gradualment
2024Es publica un nou article d'atac de preimatgeL'última línia de defensa de MD5 (resistència a preimatge) es trenca

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