MD5 vs SHA-256 - cuando usar cada funcion de hash
MD5 y SHA-256 producen huellas digitales de longitud fija de datos de entrada arbitrarios. Parecen intercambiables desde fuera - pega texto, obten hex - pero resuelven problemas diferentes. MD5 es una huella digital rapida y criptograficamente rota, adecuada para verificaciones de integridad no adversariales. SHA-256 es un hash moderno y criptograficamente solido, usado dondequiera que un atacante pueda intentar forjar una colision. Elegir el correcto para el trabajo ahorra tiempo de CPU y previene brechas de seguridad reales.
Que hace realmente una funcion de hash
Una funcion de hash toma bytes de entrada de cualquier longitud y devuelve un digest de longitud fija. La misma entrada siempre produce el mismo digest. Cambiar un solo bit de entrada produce un digest completamente diferente (el efecto avalancha). El digest es unidireccional - no puedes reconstruir la entrada desde el digest.
MD5 devuelve 128 bits (32 caracteres hex). SHA-256 devuelve 256 bits (64 caracteres hex). Ambos son deterministas. Ambos son rapidos. Ambos no revelan nada sobre la estructura de la entrada desde la salida.
Comparacion lado a lado
| Atributo | MD5 | SHA-256 |
|---|---|---|
| Longitud del digest | 128 bits (32 caracteres hex) | 256 bits (64 caracteres hex) |
| Disenado en | 1991 (Ron Rivest) | 2001 (NSA, FIPS 180-2) |
| Familia | linaje MD4 | familia SHA-2 |
| Resistencia a colisiones | Rota desde 2004 (Wang et al.); colisiones practicas en segundos | Sin colision practica conocida; ~2128 operaciones para encontrar una |
| Resistencia de segunda preimagen | Debilitada pero sin ataque practico para entrada pre-computada | Fuerte; ~2256 operaciones |
| Velocidad (x86-64 moderno) | ~500 MB/s por nucleo | ~300 MB/s por nucleo (SHA-NI: ~1,5 GB/s) |
| Aceleracion de hardware | Sin instruccion dedicada | Intel SHA-NI, extensiones crypto ARMv8 |
| Seguro para uso criptografico | No - no usar para firmas, cert pinning, hash de contrasena | Si (fuera de hash de contrasena - usa Argon2id/bcrypt para contrasenas) |
Por que MD5 esta roto y que significa realmente eso
Una colision son dos entradas diferentes que producen el mismo digest. La resistencia a colisiones de MD5 fue teoricamente rota en 2004 y practicamente rota para 2008 - un investigador puede crear dos archivos con digests MD5 identicos en segundos en hardware de consumo. Esto rompio el uso de MD5 en firmas digitales (el malware Flame forjo una firma de Windows Update en 2012), certificados TLS (todas las principales CAs dejaron de emitir certs firmados con MD5 para 2014), y cualquier contexto donde un adversario puede influir en las entradas.
La resistencia de segunda preimagen de MD5 es mas debil que la de SHA-256 pero no tiene ataque practico conocido contra entradas arbitrarias ya existentes. Esa es la ventana estrecha donde MD5 sigue siendo seguro: confirmar que un digest ya computado coincide con un archivo que descargaste, cuando ningun adversario tuvo la oportunidad de crear una colision contra ese archivo especifico.
Cuando MD5 sigue estando bien
Integridad de archivo para entornos no adversariales. Una descarga de ISO Linux publica un MD5 junto con la imagen; si el hash coincide, tu descarga no fue corrupta en transito. No hay adversario creando un ISO forjado contra ese MD5 especifico - tendrian que publicar su archivo en el sitio upstream primero.
Caches de de-duplicacion. Un proxy de cache indexa objetos por MD5 de su contenido para detectar repeticiones. Las colisiones en este contexto son benignas - dos objetos diferentes con el mismo MD5 significan una falla de cache, sin consecuencia de seguridad.
Fingerprint de filas de base de datos. "Ha cambiado este registro desde la ultima sincronizacion?" - MD5 la fila, compara con digest almacenado. Mas rapido que SHA-256; el modelo de adversario esta ausente.
Direccionamiento de contenido Git. Git usa SHA-1 (pronto SHA-256), no MD5 - pero la justificacion del diseno se aplica: para un almacen direccionado por contenido donde confias en el escritor, un hash de 128 bits es suficiente si la colision no es un vector de ataque.
Cuando SHA-256 es la eleccion correcta
Firmas digitales. Certificados TLS, firma de codigo, firma JWT - dondequiera que un atacante gane al forjar una firma, usa SHA-256 o mas fuerte.
Cert pinning y huellas digitales de clave publica. La huella digital SHA-256 de la clave publica de un certificado es el estandar para pinning.
Blockchain y almacenamiento direccionable por contenido donde adversarios participan. Bitcoin usa SHA-256 dos veces (SHA-256d) para encabezados de bloque e identificadores de transaccion. Cualquier almacen donde usuarios contribuyen contenido y colisiones pueden ser explotadas necesita SHA-256.
HMAC para autenticacion de mensajes. HMAC-SHA-256 es la linea base para firma de solicitud de API (AWS Signature v4, GitHub webhooks, Stripe). HMAC-MD5 todavia se usa en algunos protocolos legacy pero esta cada vez mas marcado por escaneres de cumplimiento.
Que usar para contrasenas (spoiler: ninguno)
No uses MD5 o SHA-256 directamente para almacenamiento de contrasenas. Ambos son rapidos - eso es malo para contrasenas. Un atacante con un digest filtrado puede probar miles de millones de contrasenas candidatas por segundo en una GPU. Usa una funcion de hash de contrasena: Argon2id (recomendacion OWASP 2025), bcrypt, o scrypt. Estas funciones son intencionalmente lentas y exigentes en memoria, asi que un atacante puede probar solo miles de candidatos por segundo, no miles de millones.
Realidad de rendimiento en 2026
MD5 sigue siendo ~1,7× mas rapido que SHA-256 en una CPU sin SHA-NI. En CPUs con Intel SHA-NI (Goldmont+, 2017) o extensiones crypto ARMv8 (Cortex-A53 en adelante), SHA-256 realmente iguala o excede el throughput de MD5 - la brecha de velocidad que motivo elegir MD5 en los 2000 ya no se mantiene.
JavaScript en el navegador con WebCrypto (crypto.subtle.digest('SHA-256', data)) alcanza ~200 MB/s en un laptop moderno. Nuestro conversor MD5 ejecuta MD5 a velocidad similar via una implementacion wasm.
MD5 o SHA-256: la regla de la frontera de confianza
La eleccion entre MD5 y SHA-256 depende de una sola pregunta - si un adversario puede influir en la entrada que estas hasheando. Si un uploader remoto, un atacante de red, o cualquier parte fuera de tu frontera de confianza puede dar forma a los bytes que llegan a la funcion de hash, elige SHA-256 (o SHA-3, o BLAKE3) para que un ataque de colision no pueda forjar un digest coincidente. Si las entradas vienen de tu propia tuberia y las estas fingerprinteando para cache, de-duplicacion, o deteccion de cambios, MD5 esta bien y corre ligeramente mas rapido en CPUs sin aceleracion SHA-NI. La decision es binaria y vive en la frontera de confianza; una vez que has nombrado en que lado de esa frontera se encuentra la entrada, el algoritmo a usar esta determinado.
Herramientas relacionadas
- MD5 Converter - calcula MD5 de texto o un archivo pequeno en el navegador.
- Text Diff - compara dos bloques de texto linea por linea.
- Text / HTML Editor - renderiza HTML y Markdown en vivo.
- Current Time (ms) - tiempo epoch para correlacion de logs.
Why trust these tools
- Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
- Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
- No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
- Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
- Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.