Descargas una ISO de 5 GB, la grabas en un USB y el instalador falla a mitad. ¿Se corrompió la descarga o el problema es otro? Junto a muchas descargas aparece una cadena larga de letras y números: el hash. En esta guía verás qué es, por qué MD5 ya no vale para seguridad y cómo comprobarlo en Windows, macOS y Linux con un solo comando.
En resumen
- Un hash es una huella digital del fichero: si cambia un solo bit, cambia el hash entero.
- Para comprobar integridad usa SHA-256; MD5 y SHA-1 están rotos frente a ataques deliberados.
- El hash solo protege si lo obtienes de una fuente fiable; si no, lo que da garantías es la firma digital.
Qué es una función hash
Una función hash toma datos de cualquier tamaño (un texto, una foto, una ISO de varios gigas) y devuelve un resultado de longitud fija. Con SHA-256 siempre son 256 bits, que se escriben como 64 caracteres hexadecimales.

Tiene cuatro propiedades que la hacen útil:
- Determinista: el mismo fichero da siempre el mismo hash, en cualquier ordenador y sistema.
- Efecto avalancha: cambiar un bit produce un hash completamente distinto, no uno parecido.
- Unidireccional: a partir del hash no se puede reconstruir el fichero.
- Resistente a colisiones: debe ser inviable encontrar dos ficheros distintos con el mismo hash.
Mira el efecto avalancha con dos textos que solo se diferencian en una letra:
SHA-256("hola") = b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79
SHA-256("Hola") = e633f4fc79badea1dc5db970cf397c8248bac47cc3acf9915ba60b5d76b0e88f
No hay ningún parecido. Por eso basta con comparar unos cuantos caracteres del principio y del final para detectar que algo ha cambiado, aunque lo correcto es comparar el hash completo.
Hash no es cifrado. Cifrar es reversible con la clave; un hash no se «descifra». Tampoco es compresión: 64 caracteres no pueden contener un fichero de 5 GB.
Algoritmos habituales
| Algoritmo | Longitud | Caracteres hex | ¿Seguro hoy? | Uso razonable |
|---|---|---|---|---|
| MD5 | 128 bits | 32 | No (colisiones desde 2004) | Detectar corrupción accidental, cachés |
| SHA-1 | 160 bits | 40 | No (colisión práctica en 2017) | Sistemas antiguos, compatibilidad |
| SHA-256 | 256 bits | 64 | Sí | Verificar descargas, firmas, certificados |
| SHA-512 | 512 bits | 128 | Sí | Igual que SHA-256 |
La longitud del hash publicado te dice qué algoritmo es: 32 caracteres es casi seguro MD5, 64 es SHA-256.
Por qué MD5 y SHA-1 ya no sirven para seguridad
En 2004 un equipo de investigadores demostró cómo fabricar colisiones en MD5: dos ficheros distintos con el mismo hash. Hoy se generan en segundos con un portátil. En 2012 el malware Flame usó una colisión MD5 para falsificar un certificado y hacerse pasar por software legítimo.
SHA-1 aguantó más, pero en 2017 se publicó la primera colisión práctica: dos PDF diferentes con idéntico SHA-1. Desde entonces navegadores y autoridades de certificación lo han retirado.
¿Qué significa esto en la práctica?
- Contra corrupción accidental (un corte de red, un disco con sectores dañados), MD5 sigue detectando el error. Los fallos aleatorios no fabrican colisiones.
- Contra manipulación deliberada, MD5 y SHA-1 no garantizan nada. Un atacante podría preparar una versión maliciosa con el mismo hash.
Si el proyecto publica varios hashes, usa siempre el SHA-256 o el SHA-512.
Cómo calcular el hash en cada sistema
Windows (PowerShell)
PowerShell trae Get-FileHash, que usa SHA-256 por defecto:
Get-FileHash .\ubuntu.iso
Get-FileHash .\ubuntu.iso -Algorithm SHA512
Para no comparar a ojo, deja que PowerShell compare por ti. El operador -eq no distingue mayúsculas de minúsculas, así que da igual cómo esté escrito el hash publicado:
(Get-FileHash .\ubuntu.iso).Hash -eq "pega_aqui_el_hash_publicado"
Devuelve True si coincide.
Windows (símbolo del sistema)
Si prefieres la consola clásica, certutil hace lo mismo:
certutil -hashfile ubuntu.iso SHA256
Admite MD5, SHA1, SHA256, SHA384 y SHA512. Escríbelo en mayúsculas para evitar sorpresas en versiones antiguas.
macOS
shasum -a 256 ~/Downloads/ubuntu.iso
También puedes usar shasum -a 512 o md5 si el proyecto solo publica MD5.
Linux
sha256sum ubuntu.iso
sha512sum ubuntu.iso
md5sum ubuntu.iso
Resumen de comandos
| Sistema | SHA-256 | Comprobar contra fichero |
|---|---|---|
| Windows PowerShell | Get-FileHash fichero | Comparar con -eq |
| Windows CMD | certutil -hashfile fichero SHA256 | Manual |
| macOS | shasum -a 256 fichero | shasum -a 256 -c fichero.sha256 |
| Linux | sha256sum fichero | sha256sum -c fichero.sha256 |
Comprobar con un fichero .sha256 o SHA256SUMS
Muchos proyectos no ponen el hash en la web, sino en un fichero de texto: ubuntu.iso.sha256, SHA256SUMS o similar. Su formato es sencillo: el hash, dos espacios y el nombre del fichero.

3f1a9c...e07b ubuntu.iso
Pasos:
- Descarga el fichero y su
.sha256en la misma carpeta. - Abre una terminal en esa carpeta.
- Ejecuta la comprobación:
sha256sum -c ubuntu.iso.sha256
En macOS, shasum -a 256 -c ubuntu.iso.sha256. Si todo va bien verás ubuntu.iso: OK. Si sale FAILED, el fichero no coincide.
Cuando SHA256SUMS lista muchos ficheros y solo has bajado uno, añade --ignore-missing para que no se queje del resto:
sha256sum -c --ignore-missing SHA256SUMS
Los límites del hash: cuándo no basta
Aquí está lo que casi nadie explica. Un hash demuestra que tu fichero es idéntico al que generó ese hash. No demuestra quién lo generó.

Si un atacante compromete la web de descargas, puede cambiar la ISO y también el hash publicado en la misma página. Tu comprobación saldrá perfecta y habrás instalado la versión manipulada. Ha pasado en casos reales de servidores comprometidos.
Formas de reducir ese riesgo:
- Obtén el hash por otro canal: la web oficial por HTTPS cuando la descarga viene de un mirror, el anuncio del proyecto, su repositorio de código.
- Verifica la firma digital cuando exista. El proyecto firma el fichero de hashes con su clave privada y tú lo compruebas con su clave pública, que no está en el mismo servidor:
gpg --verify SHA256SUMS.gpg SHA256SUMS
Si la firma es válida y la clave es la oficial del proyecto, el fichero de hashes es auténtico, y con él la ISO. En Windows, los ejecutables firmados muestran el editor verificado en Propiedades › Firmas digitales.
| Qué compruebas | Detecta corrupción | Detecta manipulación |
|---|---|---|
| MD5 / SHA-1 | Sí | No |
| SHA-256 de la misma web | Sí | Solo si la web no está comprometida |
| SHA-256 por otro canal | Sí | Sí, en la práctica |
| Firma digital verificada | Sí | Sí |
Errores habituales
- Calcular el hash de otro fichero: el navegador renombra a
ubuntu (1).isosi ya existía. Revisa el nombre exacto. - Comparar algoritmos distintos: calculas SHA-256 y lo comparas con un MD5 publicado. Nunca coincidirán. Fíjate en la longitud.
- Descarga aún sin terminar: el hash de un fichero a medias no sirve. Espera a que acabe.
- Fichero .sha256 en otra carpeta:
-cbusca el fichero por el nombre que aparece dentro, en el directorio actual. - Saltos de línea de Windows: un
.sha256editado en Windows puede darFAILEDen Linux por el retorno de carro final. Vuelve a descargarlo en lugar de editarlo. - Pensar que hash correcto significa programa seguro: solo garantiza que es el fichero publicado. Si el autor original incluye algo malicioso, el hash también lo «certifica».



