Hashing y cifrado son dos conceptos fundamentales en seguridad informática, pero también dos de los más confundidos. Si alguna vez has leído términos como MD5, SHA-1, SHA-256, hash irreversible o cifrado simétrico y te han sonado a magia oscura, esta guía te lo va a aclarar todo.
Aquí vas a aprender:
- Qué es exactamente un hash
- En qué se diferencia del cifrado
- Por qué MD5 y SHA-1 ya NO deben usarse
- Cómo funciona SHA-256
- Qué ataques existen (colisiones, fuerza bruta, diccionarios)
- Cuándo usar hashing y cuándo cifrado
- Ejemplos claros con código real
Qué es el hashing (explicación clara)
Un hash es una función matemática que convierte una entrada (texto, archivo, contraseña) en una cadena fija de caracteres.
Una propiedad clave del hashing: es irreversible.
Ejemplo rápido:
Entrada:
"hola mundo"
Hash SHA-256:
64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477248e3f9a4e5f5a970
No existe ninguna operación que te permita volver del hash al texto original.
Usos típicos del hashing
- Guardar contraseñas de forma segura
- Verificar integridad de archivos
- Firmas digitales
- Bloques en la blockchain (sí, Bitcoin usa SHA-256)
Qué es el cifrado
El cifrado transforma datos para que solo puedan ser leídos por quien tenga la clave correcta.
A diferencia del hashing:
El cifrado SÍ es reversible.
Tipos de cifrado
- Simétrico (AES): misma clave para cifrar y descifrar
- Asimétrico (RSA): clave pública y clave privada
Ejemplo de cifrado simétrico
Entrada:
"hola mundo"
Cifrado AES (resumen):
U2FsdGVkX19...
Si tienes la clave, puedes volver a obtener “hola mundo”. Con un hash, jamás podrías.
Hashing vs Cifrado (tabla comparativa responsive)
| Concepto | Hashing | Cifrado |
|---|---|---|
| Reversibilidad | Irreversible | Reversible con la clave correcta |
| Uso principal | Verificar integridad, proteger contraseñas | Proteger datos confidenciales para ser recuperados |
| Salida | Tamaño fijo | Tamaño variable |
| Ejemplos | MD5, SHA-1, SHA-256 | AES, RSA |
| Vulnerabilidad | Colisiones, diccionarios | Robo de claves, malas implementaciones |
| ¿Para guardar contraseñas? | Sí (ideal con salt + hashing lento) | No (solo en casos excepcionales) |
MD5 y SHA-1: por qué ya no deben usarse
MD5 y SHA-1 fueron estándares durante décadas, pero hoy son considerados inseguros por un motivo:
Son vulnerables a colisiones.
Una colisión ocurre cuando dos entradas distintas producen el mismo hash.
Ejemplo real:
- Archivo A → Hash H1
- Archivo B → Hash H1 (misma salida, entrada distinta)
Esto rompe completamente la integridad. Por eso Google retiró SHA-1 en 2017 y los navegadores dejaron de aceptarlo.
SHA-256: el estándar moderno
SHA-256 pertenece a la familia SHA-2 y hoy es la opción más común en seguridad, criptomonedas, APIs y validación de datos.
Características clave
- Salida siempre de 256 bits
- No existen colisiones conocidas
- Extremadamente resistente a fuerza bruta
- Rendimiento muy alto
Ejemplo de SHA-256 en Python
import hashlib
texto = "UtilityBro"
resultado = hashlib.sha256(texto.encode()).hexdigest()
print(resultado)
Resultado típico:
0d26e2fa50d93c9ac1888950480e9dc467ea4b969f1b461d193e7ef593c19c23
Cómo se guardan realmente las contraseñas (bien hechas)
Guardar una contraseña sin cifrar es un suicidio digital.
Las contraseñas jamás deben guardarse en texto plano.
Lo correcto es:
- Añadir un salt (una cadena aleatoria)
- Aplicar una función de hashing lento (bcrypt, Argon2)
Ejemplo conceptual:
Contraseña: "123456"
Salt: "X9a$F31"
Hash final (bcrypt):
$2b$12$X9a$F31...
Así incluso dos personas con la misma contraseña generan hashes distintos.
Ataques comunes a hashes y cómo evitarlos
1. Fuerza bruta
Probar millones de combinaciones.
2. Diccionario
Usar una lista de contraseñas comunes.
3. Rainbow tables
Tablas precalculadas de millones de hashes.
Solución: siempre usar salt.
4. Colisiones
Dos entradas → un hash.
Solución: usar SHA-256 o superior.
Ejemplo práctico: hashing vs cifrado
Hashing (inicio de sesión)
Usuario escribe: "MiClave123"
La app hace SHA-256 → compara con el hash guardado
Cifrado (guardar tarjeta)
La tarjeta se cifra con AES → se almacena → se descifra solo para enviarla a la pasarela de pago
¿Cuándo usar hashing y cuándo cifrado?
Usa hashing cuando:
- contrasenas
- integridad de archivos
- tokens de autenticación
- firmas digitales
Usa cifrado cuando:
- necesitas recuperar los datos
- almacenas información sensible (tarjetas, DNI, direcciones)
- transmites datos privados
Protege tus contraseñas: genera claves seguras y únicas
Usa nuestro generador para crear contraseñas fuertes e imposibles de adivinar.
Generar Contraseña Segura