Generador de Hash MD5 en línia - Eina gratuïta de xifratge MD5
Genereu hashes MD5 instantàniament amb la nostra eina en línia gratuïta. El processament del costat del client garanteix la privadesa. Perfecte per a comprovacions d'integritat de dades i verificació de fitxers.
Generador de Hash MD5
Documentació
Què és un generador de hash MD5?
Un generador de hash MD5 és una eina que converteix qualsevol fragment de text en un codi de longitud fixa anomenat hash MD5. MD5 significa Message-Digest Algorithm 5, una funció hash publicada el 1992. Introduir-hi una paraula, una frase o un fitxer sencer sempre produeix el mateix resultat de 32 caràcters, i fins i tot un canvi mínim en l’entrada en produeix un de completament diferent. Aquesta eina executa l’algorisme directament al navegador mitjançant JavaScript, de manera que el text introduït no s’envia mai a cap servidor.
Com funciona el hash MD5
MD5 és una funció unidireccional. Rep una entrada de qualsevol longitud i produeix una sortida de mida fixa anomenada hash o resum. «Unidireccional» significa que el procés no es pot invertir: no hi ha cap mètode per reconstruir el text original només a partir del hash.
L’algorisme processa les dades en les etapes següents:
- El missatge es converteix en bytes i s’emplena perquè la seva longitud sigui múltiple de 512 bits.
- S’hi afegeix un camp de 64 bits que registra la longitud del missatge original.
- S’estableixen quatre nombres de 32 bits amb valors inicials fixos.
- El missatge emplenat es divideix en blocs de 512 bits. Cada bloc passa per quatre rondes de 16 operacions, és a dir, 64 operacions per bloc. Cada operació combina les dades del bloc amb els quatre nombres acumulats mitjançant funcions bit a bit, sumes i rotacions de bits.
- Un cop processat cada bloc, els quatre nombres de 32 bits s’uneixen i s’escriuen com a dígits hexadecimals.
El resultat sempre té 128 bits, que es mostren com 32 caràcters hexadecimals (0-9 i a-f), perquè cada byte de la sortida de 128 bits s’escriu amb dos dígits hexadecimals.
Es considera que una funció hash és segura quan té tres propietats: la mateixa entrada sempre produeix la mateixa sortida, és inviable trobar una entrada que produeixi un hash determinat i és inviable trobar dues entrades diferents que produeixin el mateix hash. MD5 encara té la primera propietat, però les altres dues s’han vulnerat, tal com s’explica més avall.
Exemple de hash MD5
Aplicar MD5 a la paraula «hello» produeix:
1Input: hello
2Output: 5d41402abc4b2a76b9719d911017c592
3Aplicar l’algorisme a una cadena buida també produeix un resultat fix i no buit, perquè l’emplenament i el camp de longitud igualment passen per l’algorisme:
1Input: (empty string)
2Output: d41d8cd98f00b204e9800998ecf8427e
3Canviar un sol caràcter, per exemple escriure en majúscula la primera lletra per obtenir «Hello», produeix una cadena de 32 caràcters completament diferent. Això s’anomena efecte d’allau: petits canvis en l’entrada provoquen canvis grans i impredictibles en la sortida.
Com s’utilitza aquest generador de hash MD5
- Escriviu o enganxeu text al quadre d’entrada.
- El hash apareix automàticament sota el quadre i s’actualitza a mesura que canvia el text. No cal prémer cap botó separat.
- Feu clic a «Copia» per copiar el hash de 32 caràcters al porta-retalls.
- Sota el resultat apareix una petita barra de color, generada a partir d’una part del hash, com a comprovació visual ràpida que dos hashes són diferents.
Com que el càlcul es fa al mateix motor JavaScript del navegador, la pàgina no necessita connexió a Internet un cop s’ha carregat, i el text introduït no es transmet enlloc.
Usos habituals dels hashes MD5
- Comprovar que un fitxer descarregat no s’ha corromput durant la transferència, comparant-ne el hash amb un valor publicat.
- Crear claus de cerca o identificadors de memòria cau per a les dades, ja que un hash és un substitut curt i de mida fixa d’un valor més llarg.
- Detectar fitxers duplicats comparant-ne els hashes en lloc del contingut complet.
- Sistemes de control de versions i de compilació, que utilitzen hashes per detectar si un fitxer ha canviat.
MD5 no és adequat per emmagatzemar contrasenyes, generar signatures digitals ni en cap altre cas en què un atacant pugui intentar falsificar o invertir el hash. Els motius s’expliquen a la secció següent.
Història de MD5
Ronald Rivest, un criptògraf estatunidenc, va dissenyar MD5 el 1991 com a successor del seu algorisme anterior MD4. L’Internet Engineering Task Force va publicar l’especificació com a RFC 1321 el 1992, i MD5 es va utilitzar àmpliament per a sumes de comprovació i, durant un temps, amb finalitats de seguretat.
Les debilitats de l’estructura interna de MD5 ja es van assenyalar el 1996. El 2004, un equip dirigit per la criptògrafa Xiaoyun Wang va demostrar un mètode pràctic per crear dues entrades diferents que produeixen el mateix hash MD5, un defecte anomenat col·lisió. El 2008, un altre grup d’investigadors va utilitzar un atac de col·lisió per falsificar un certificat de seguretat d’un lloc web fraudulent que els navegadors d’aquell moment haurien acceptat com a genuí. Aquests resultats van fer que els organismes d’estandardització de la seguretat deixessin de recomanar MD5 per a qualsevol ús en què la falsificació fos rellevant.
Debilitats de seguretat de MD5
- La resistència a les col·lisions està trencada. És computacionalment viable construir dues entrades diferents amb el mateix hash MD5.
- La velocitat juga en contra seva per a les contrasenyes. MD5 es va dissenyar per calcular-se ràpidament, cosa útil per a les sumes de comprovació però perjudicial per a l’emmagatzematge de contrasenyes, ja que permet a un atacant provar milers de milions de conjectures per segon amb maquinari ordinari.
- No es coneix públicament cap atac de preimatge més ràpid que la força bruta, de manera que recuperar una entrada exacta a partir d’un hash continua sent difícil, però això, per si sol, no fa que MD5 sigui adequat per a usos sensibles des del punt de vista de la seguretat.
A causa d’aquests problemes, MD5 no és adequat per a l’emmagatzematge de contrasenyes, signatures digitals, certificats SSL/TLS ni cap aplicació en què algú pugui intentar deliberadament produir un hash coincident.
Alternatives a MD5
- SHA-256, part de la família SHA-2, produeix un hash de 256 bits i no té cap atac de col·lisió pràctic conegut.
- SHA-3, un estàndard més recent basat en un disseny intern diferent del de SHA-2.
- BLAKE2, una funció hash ràpida amb una seguretat considerada comparable a la de SHA-3.
- Bcrypt, scrypt o Argon2, dissenyats específicament per a l’emmagatzematge de contrasenyes, ja que són deliberadament lents i resistents a les conjectures accelerades per maquinari.
Preguntes freqüents
Per a què s’utilitza MD5 avui?
Principalment per a tasques que no són de seguretat, com ara comprovar la integritat de fitxers, eliminar duplicats i crear claus de memòria cau. Ja no es recomana per a contrasenyes, signatures ni certificats.
Es pot invertir un hash MD5 per obtenir el text original?
No. MD5 és una funció unidireccional, de manera que no hi ha cap càlcul que converteixi un hash en la seva entrada. Un atacant encara pot provar entrades probables i calcular-ne el hash per comprovar si coincideix, i per això MD5 no és segur per a les contrasenyes.
Per què MD5 no és segur per emmagatzemar contrasenyes?
Com que es calcula molt ràpidament, un atacant amb maquinari modern pot provar un nombre enorme de conjectures de contrasenya per segon. Els algorismes dissenyats específicament, com bcrypt, scrypt o Argon2, són deliberadament lents per resistir-ho.
Quant dura un hash MD5?
Sempre 128 bits, mostrats com 32 caràcters hexadecimals, independentment de la longitud del text d’entrada.
Poden dues entrades diferents produir el mateix hash MD5?
Sí. Això s’anomena col·lisió, i els investigadors han demostrat mètodes pràctics per construir aquestes parelles des de 2004. Aquesta és la raó principal per la qual MD5 ja no es considera segur.
Aquesta eina envia el text introduït a un servidor?
No. El hash es calcula mitjançant JavaScript que s’executa al navegador, i l’entrada no surt mai del dispositiu.
Quina diferència hi ha entre MD5 i SHA-256?
Totes dues són funcions hash, però SHA-256 produeix un hash més llarg, de 256 bits, i no té cap atac de col·lisió pràctic conegut, mentre que la resistència a les col·lisions de MD5 està trencada. SHA-256 és la millor opció sempre que la seguretat sigui important.
Referències
- Rivest, R. (1992). "The MD5 Message-Digest Algorithm." RFC 1321, Internet Engineering Task Force. https://tools.ietf.org/html/rfc1321
- Turner, S., Chen, L. (2011). "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms." RFC 6151, Internet Engineering Task Force. https://tools.ietf.org/html/rfc6151
- Wang, X., Yu, H. (2005). «How to Break MD5 and Other Hash Functions.» Advances in Cryptology - EUROCRYPT 2005.
- Sotirov, A., i altres. (2008). «MD5 Considered Harmful Today: Creating a Rogue CA Certificate.» Presentat al 25è Congrés de Chaos Communication.
- National Institute of Standards and Technology (2015). "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions." FIPS 202. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf