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 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

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

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:

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

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:

  1. Añadir un salt (una cadena aleatoria)
  2. 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:

Usa cifrado cuando:


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