Seguridad · 4 min de lectura ·
MD5, SHA-1 o SHA-256: ¿qué hash deberías usar?
Sumas de comprobación, integridad de archivos, contraseñas y firmas necesitan cosas distintas. Una guía breve para elegir el hash adecuado y el error que hay que evitar.

Una función hash convierte cualquier entrada en una huella corta de longitud fija. La misma entrada da siempre el mismo hash, y cambiar un solo byte cambia el resultado por completo. Lo que distingue a los algoritmos es lo difícil que resulta engañarlos.
"hello" MD5 5d41402abc4b2a76b9719d911017c592
"hello" SHA-256 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
MD5 y SHA-1: rotos para la seguridad
Se pueden crear en segundos dos entradas distintas con el mismo hash MD5, y las colisiones prácticas de SHA-1 son públicas desde 2017. No los uses para firmas, certificados ni nada que un atacante pueda manipular. Siguen sirviendo como comprobaciones rápidas, por ejemplo para detectar archivos duplicados o generar claves de caché.
SHA-256: la opción segura por defecto
Para comprobar integridad, verificar descargas, firmas digitales y direccionamiento por contenido, SHA-256 de la familia SHA-2 es la opción estándar. SHA-3 y BLAKE2 son alternativas modernas con un nivel de seguridad similar.
CRC32: para accidentes, no para ataques
CRC32 y Adler-32 son sumas de comprobación rápidas que detectan corrupción accidental en transferencias y archivos comprimidos. Cualquiera puede fabricar a propósito un valor que coincida, así que no protegen contra manipulaciones.
Nunca guardes contraseñas con un hash rápido
Es el error más común. La velocidad es justo lo que no quieres para contraseñas: una tarjeta gráfica puede probar miles de millones de hashes SHA-256 por segundo. Usa un algoritmo lento y con sal pensado para contraseñas, como Argon2, bcrypt o scrypt, a través de la biblioteca de contraseñas de tu framework.
Hash, cifrado y codificación son cosas distintas
Codificación Base64, hex, URL reversible por cualquiera, sin clave
Cifrado AES, RSA reversible solo con la clave
Hash SHA-256, MD5 de un solo sentido, no se puede revertir
Un hash no se puede «descifrar». Las webs que dicen revertir MD5 solo buscan el hash en enormes tablas de entradas conocidas, algo que funciona con palabras comunes y contraseñas cortas y falla con cualquier cosa larga y aleatoria.
Verificar una descarga
Muchos proyectos publican una suma SHA-256 junto a sus descargas. Calcula el hash del archivo que has recibido y compara ambos valores; si un solo carácter difiere, el archivo está dañado o no es el que publicó el autor. Todos los sistemas operativos tienen un comando integrado:
Linux sha256sum file.iso
macOS shasum -a 256 file.iso
Windows certutil -hashfile file.iso SHA256
PowerShell Get-FileHash file.iso -Algorithm SHA256
Longitud de los hashes
MD5 produce 128 bits (32 caracteres hexadecimales), SHA-1 160 bits (40), SHA-256 256 bits (64) y SHA-512 512 bits (128). Si necesitas demostrar quién creó un mensaje, y no solo que no ha cambiado, usa un HMAC o una firma digital: cualquiera que modifique el contenido puede recalcular un hash simple.
Cuál usar, en una línea
- Comprobar una descarga o una copia de seguridad: SHA-256.
- Firmas, certificados y todo lo relacionado con la seguridad: SHA-256 o superior, nunca MD5 ni SHA-1.
- Encontrar archivos duplicados o crear claves de caché: MD5 o SHA-1 sirven y son rápidos.
- Detectar errores de transmisión en un protocolo o un archivo comprimido: CRC32.
- Guardar contraseñas: ninguno de ellos; usa Argon2, bcrypt o scrypt.
Por qué tus hashes no coinciden
Si dos herramientas dan hashes distintos para el «mismo» texto, la entrada casi nunca es la misma: un salto de línea final, finales de línea de Windows o otra codificación de texto cambian todo el resultado. El generador de hashes de 4Dev calcula el hash del texto como bytes UTF-8, igual que md5sum, sha256sum y hashlib de Python, y admite 17 algoritmos, entre ellos MD5, SHA-1, SHA-2, SHA-3, BLAKE2 y CRC32.