Una función hash toma una entrada de cualquier tamaño (un texto, un archivo, una contraseña) y produce una cadena de longitud fija que actúa como su "huella digital". La misma entrada siempre genera el mismo resultado, pero el más mínimo cambio (una coma, un bit) produce una huella completamente distinta. Esta propiedad hace que los hashes sean útiles para comprobar si dos cosas son idénticas sin tener que compararlas byte a byte.
Para qué se usan realmente
- Verificar descargas. Muchos proyectos publican el hash SHA-256 de sus archivos. Después de descargar, calculas el hash localmente y lo comparas: si coincide, el archivo llegó íntegro y sin manipular.
- Detectar cambios. Los sistemas de control de versiones y las herramientas de copia de seguridad usan hashes para saber qué archivos han cambiado sin leer todo su contenido.
- Indexar y deduplicar. Almacenar el hash de un archivo permite detectar duplicados aunque tengan nombres distintos.
- Almacenar contraseñas. Los servidores nunca deberían guardar contraseñas en claro; guardan un hash (con "sal" y un algoritmo lento diseñado para ello, como bcrypt o Argon2, no un SHA simple).
Las diferencias entre algoritmos
MD5 produce 128 bits (32 caracteres hexadecimales). Es rápido y sigue siendo habitual para comprobar la integridad de una descarga frente a errores de transmisión, pero está roto para usos de seguridad: es posible generar deliberadamente dos entradas distintas con el mismo MD5 (una "colisión"). No lo uses para firmar nada ni para verificar autenticidad.
SHA-1 produce 160 bits. También se considera inseguro desde que se demostraron colisiones prácticas en 2017. Git lo usa internamente por motivos históricos, pero los proyectos nuevos no deberían apoyarse en él para seguridad.
SHA-256, SHA-384 y SHA-512 forman la familia SHA-2. Producen 256, 384 y 512 bits respectivamente y hoy se consideran seguros. SHA-256 es el estándar de facto para verificar archivos y firmas digitales. SHA-512 puede ser incluso más rápido en procesadores de 64 bits.
Cómo calcular un hash sin instalar nada
El generador de hash de Mcatorce Suite calcula MD5, SHA-1, SHA-256, SHA-384 y SHA-512 de un texto o de un archivo directamente en tu navegador. Para SHA usa la API de criptografía nativa del navegador (crypto.subtle); MD5 se implementa en JavaScript porque el navegador no lo incluye.
Como el cálculo es local, puedes verificar el hash de un instalador, un documento confidencial o una clave sin que el contenido salga de tu equipo. Arrastra el archivo, copia el hash resultante y compáralo con el que publica el proveedor.
Un flujo de verificación típico
- Descarga el archivo y, por separado, anota el hash SHA-256 oficial que aparece en la página del proyecto.
- Abre el generador de hash y arrastra el archivo descargado.
- Compara carácter por carácter (o pega ambos valores en el comparador de textos). Si son idénticos, la descarga es correcta.
- Si no coinciden, vuelve a descargar desde una fuente fiable: el archivo puede estar corrupto o alterado.
Preguntas frecuentes
¿Un hash se puede "descifrar" para recuperar el original? No. Una función hash no es cifrado; es un proceso de un solo sentido. Lo que existe son tablas de valores precalculados para entradas comunes (por eso las contraseñas necesitan sal).
¿Por qué obtengo un hash distinto al del proveedor? Lo más habitual es haber calculado el hash de un archivo distinto (por ejemplo, uno parcialmente descargado) o haber comparado algoritmos diferentes (MD5 frente a SHA-256).
¿MD5 sirve para algo hoy? Sí, para detectar corrupción accidental en transferencias. No sirve para protegerse frente a manipulación deliberada.

