Qué es el hash de archivos
Un hash es un algoritmo que convierte datos de longitud arbitraria en una cadena de longitud fija. El hash de un archivo es su "huella digital": el hash del mismo archivo es único, y si el archivo cambia un solo byte, el hash cambia.
Usos comunes:
- Verificar la integridad de archivos (si la descarga está completa)
- Prevenir manipulación (si el archivo fue modificado)
- Desduplicación (si dos archivos son iguales)
- Almacenamiento de contraseñas (se guarda el hash, no el texto plano)
Algoritmos de hash comunes
MD5
- Salida de 128 bits (cadena hexadecimal de 32 caracteres)
- Rápido
- Ya descifrado, existen colisiones (archivos distintos con el mismo hash)
- No apto para usos de seguridad
- Aún se usa para verificación de integridad (usos no de seguridad)
SHA-1
- Salida de 160 bits (cadena hexadecimal de 40 caracteres)
- Velocidad media
- Ya descifrado, existen colisiones
- No se recomienda para usos de seguridad
- Git usaba SHA-1 inicialmente, ahora migra a SHA-256
SHA-256
- Salida de 256 bits (cadena hexadecimal de 64 caracteres)
- Relativamente lento
- Seguro, actualmente sin colisiones
- Recomendado para usos de seguridad
- Blockchain y certificados HTTPS usan SHA-256
SHA-512
- Salida de 512 bits (cadena hexadecimal de 128 caracteres)
- Lento
- Mayor seguridad que SHA-256
- Adecuado para usos de alta seguridad
Recomendación de elección
- Verificación de integridad (no de seguridad): MD5 es suficiente (rápido)
- Usos de seguridad: SHA-256 (equilibrio entre seguridad y velocidad)
- Alta seguridad: SHA-512
- No recomendado: SHA-1 (ya descifrado)
Principio de la verificación de hash
Generación del hash
- Leer todo el contenido del archivo
- Calcular con el algoritmo de hash
- Generar una cadena de longitud fija
Proceso de verificación
- Al descargar el archivo, obtener el hash oficial
- Calcular el hash del archivo localmente
- Comparar los dos valores
- Iguales = archivo íntegro, distintos = archivo dañado o manipulado
Por qué puede verificar la integridad
Propiedades del algoritmo de hash:
- La misma entrada siempre produce la misma salida
- Diferentes entradas casi nunca producen la misma salida (probabilidad de colisión extremadamente baja)
- Si la entrada cambia un byte, la salida cambia por completo (efecto avalancha)
Por tanto, aunque el archivo cambie un solo byte, el hash será completamente distinto.
Situaciones de uso
Verificación de descarga
Al descargar archivos grandes (imágenes de sistema, paquetes de instalación de software), el sitio oficial proporciona un hash. Tras la descarga, se calcula el hash local y se compara para confirmar que la descarga está completa y sin daños.
Prevención de manipulación
Para archivos importantes (contratos, pruebas) se genera un hash y se archiva. Posteriormente se verifica si el archivo fue modificado.
Desduplicación de archivos
Si dos archivos tienen el mismo hash, el contenido es el mismo (probabilidad de colisión extremadamente baja). Usar el hash para determinar duplicados es más rápido que comparar byte a byte.
Almacenamiento de contraseñas
Los sitios web almacenan el hash de la contraseña del usuario, no el texto plano. Al iniciar sesión, se calcula el hash de la contraseña introducida y se compara. Aunque la base de datos se filtre, el atacante no obtiene la contraseña en texto plano.
Firmas digitales
Los certificados digitales usan hash + cifrado para verificar el origen y la integridad de los archivos.
Cómo verificar el hash de un archivo
Verificar con DocsAll
Herramienta de hash de archivos:
- Sube el archivo
- La herramienta calcula MD5, SHA-1, SHA-256
- Muestra los valores hash
- Compara con el hash oficial
El cálculo se realiza en el navegador; los archivos no se suben.
Línea de comandos en Windows
certutil -hashfile nombre_archivo SHA256
Línea de comandos en Mac/Linux
shasum -a 256 nombre_archivo
md5 nombre_archivo
Comparar hashes
- Copia el hash oficial
- Pégalo en el campo de comparación
- La herramienta compara automáticamente
- O compara carácter por carácter manualmente
Preguntas frecuentes
¿Qué hago si los hashes no coinciden?
- Descarga incompleta: vuelve a descargar
- Archivo manipulado: vuelve a descargar desde una fuente de confianza
- Algoritmo de hash distinto: confirma que usas el mismo algoritmo para comparar
¿Se puede seguir usando MD5?
- Verificación de integridad (usos no de seguridad): se puede usar
- Usos de seguridad (anti-manipulación, contraseñas): no se recomienda, usa SHA-256
- Riesgo de colisión: alguien puede construir dos archivos distintos con el mismo MD5
¿Se puede deducir el original a partir del hash?
No. El hash es una función unidireccional. No se puede recuperar el original a partir del hash. Por eso es seguro almacenar el hash de contraseñas (incluso si se filtra, no se obtiene el texto plano).
El hash de archivos grandes es lento
- El hash necesita leer todo el archivo
- Los archivos grandes (varios GB) tardan en calcularse
- Es un fenómeno normal, ten paciencia
Mayúsculas y minúsculas del hash
El hash es una cadena hexadecimal; las mayúsculas y minúsculas no afectan (a y A son equivalentes). Ignora las mayúsculas y minúsculas al comparar.
Consejos de seguridad
Usa hashes de fuentes de confianza
Obtén el hash del sitio web oficial o de canales de confianza. No uses hashes de origen desconocido para verificar, ya que un atacante podría haberlos reemplazado.
Usa un algoritmo de hash fuerte
Para usos de seguridad, usa SHA-256 o superior. MD5 y SHA-1 ya no son seguros.
El hash no es cifrado
El hash es unidireccional y no se puede descifrar. El cifrado es bidireccional y se puede descifrar. No uses el hash como si fuera cifrado.
Hash con sal
Al almacenar contraseñas, usa hash con sal (salt + password y luego hash) para prevenir ataques con tablas rainbow.
Calcular hash con DocsAll
Herramienta de hash de archivos:
- Sube el archivo
- Calcula automáticamente MD5, SHA-1, SHA-256, SHA-512
- Muestra todos los valores hash
- Copia el hash que necesites
- Compara con el valor oficial
El cálculo se realiza en el navegador; los archivos no se suben al servidor.
Resumen
El hash de archivos es la huella digital del archivo, usada para verificación de integridad y prevención de manipulación. MD5 es rápido pero ya está descifrado; SHA-256 es seguro y el recomendado. Al verificar, obtén el hash de una fuente de confianza y compáralo con el mismo algoritmo. La herramienta de hash de DocsAll se ejecuta en el navegador y los archivos no se transmiten al exterior.