cifradohashbase64seguridad

Cifrado, hash y codificación: las tres operaciones que todo el mundo confunde

Diferencias reales entre cifrar, hashear y codificar: qué garantiza cada uno, cuándo usar AES, SHA-256 o Base64 y los errores de seguridad más comunes.

23 de agosto de 2026·7 min de lectura

"Codifica la contraseña con Base64 para que esté segura." Esa frase, dicha en serio en reuniones reales, delata la confusión más persistente de la informática aplicada. Cifrado, hash y codificación son tres operaciones radicalmente distintas con propósitos incompatibles — y confundirlas produce vulnerabilidades, no solo errores estéticos.

La pregunta que lo separa todo

Para clasificar cualquier operación de transformación de datos, hazte una pregunta: ¿está pensada para revertirse, y por quién?

  • Si se revierte con un secreto (clave) → es cifrado.
  • Si no debe revertirse jamás → es hash.
  • Si se revierte sin ningún secreto → es codificación.

Ni Base64 ni hashing son cifrado. Ni el cifrado sirve para verificar integridad al modo de un hash. Cada herramienta tiene un contrato distinto.

Codificación: traducir representaciones

La codificación convierte datos entre formatos para que sobrevivan a un canal concreto. No hay clave, no hay intención de ocultar nada: cualquiera puede decodificar.

Base64 existe porque muchos protocolos (email originalmente, luego data URIs, JWT) asumen texto ASCII seguro. Tres bytes binarios arbitrarios se convierten en cuatro caracteres del alfabeto A-Z a-z 0-9 + /. El precio: +33% de tamaño.

btoa("Hola")                    // "SG9sYQ=="
atob("SG9sYQ==")                // "Hola"

URL encoding (%20 por espacio), hex (48 65 6c...) o Base32 pertenecen a esta misma familia. Ninguna aporta un átomo de seguridad: un password en Base64 es un password leíble con un comando.

Hash: la huella irreversible

Un hash criptográfico toma cualquier entrada y produce una salida de longitud fija con tres propiedades contractuales:

  1. Determinista: la misma entrada produce siempre el mismo hash.
  2. Efecto avalancha: cambiar un bit de la entrada cambia aproximadamente la mitad de los bits de salida.
  3. Irreversible: no existe operación inversa; recuperar la entrada sería probar valores hasta colisionar.
const digest = await crypto.subtle.digest(
  "SHA-256",
  new TextEncoder().encode("contraseña123")
);
// 0cf7... longitud siempre 32 bytes

Su terreno natural es la verificación, no la confidencialidad:

  • Comprobar la integridad de una descarga comparando su SHA-256 publicado.
  • Guardar credenciales: guardas el hash, nunca la contraseña. Al iniciar sesión, hasheas lo recibido y comparas.
  • Firmas digitales y deducción de duplicados.

El matiz crítico para contraseñas: los hashes generales como SHA-256 son rápidos por diseño, y eso es pésimo frente a fuerza bruta offline. Para almacenar contraseñas se usan hashes lentos y con salt integrado — bcrypt, scrypt o Argon2 — donde la lentitud es la característica de seguridad.

Cifrado: confidencialidad reversible con clave

Cifrar transforma datos para que solo quien posea la clave pueda leerlos. Es la única de las tres operaciones cuyo objetivo es el secreto.

Simétrico (AES-256-GCM): la misma clave cifra y descifra. Rapidísimo, ideal para volúmenes grandes: discos cifrados, bases de datos, canales TLS ya establecidos. El problema del reparto de claves limita su uso directo entre desconocidos.

Asimétrico (RSA, ECC): clave pública para cifrar, privada para descifrar (o viceversa para firmar). Resuelve el intercambio inicial sin canal previo, a cambio de ser órdenes de magnitud más lento.

En la práctica se combinan: TLS usa asimétrico durante segundos para acordar una clave de sesión y simétrico para todo el tráfico posterior.

GCM merece mención aparte: es un modo AEAD que añade autenticación al cifrado. Un atacante que altera un bit del ciphertext provoca un error explícito al descifrar, en lugar de obtener datos corruptos silenciosamente. Si tu modo de cifrado no autentica (ECB, CBC sin MAC), tienes confidencialidad frágil sin integridad.

La tabla mental definitiva

Propiedad Codificación Hash Cifrado
Reversible Sí, sin clave No Sí, con clave
Objetivo Compatibilidad Verificación Confidencialidad
Clave No No
Ejemplo Base64, URL encode SHA-256, Argon2 AES-GCM, RSA

Tres casos reales donde la confusión cuesta caro:

  • "Cifrar" contraseñas con Base64 en vez de hashearlas: cualquier filtración entrega las credenciales en bandeja.
  • Hashear documentos para mantenerlos secretos: el hash protege contra modificación, no contra lectura.
  • Usar MD5 para verificación en 2026: roto contra colisiones deliberadas desde hace años; para verificar descargas, SHA-256.

Pruébalas todas

Si quieres tocar cada operación sin instalar nada: el generador de hashes calcula SHA-256 y familia sobre cualquier texto o archivo, el codificador multibase compara Base64/Base32/Base58/Base85 sobre tus datos, y el cifrador de texto aplica AES-256-GCM real en tu navegador.

Preguntas frecuentes

¿Puedo descifrar un hash si tengo mucha potencia de cómputo? No "descifrar": invertir por fuerza bruta probando candidatos. Contra SHA-256 sin sal y contraseñas débiles, es viable; contra Argon2 bien configurado, no lo es.

¿Por qué el mismo texto da hashes distintos con salt? Porque el salt se mezcla con la entrada. Dos usuarios con la misma contraseña producen hashes diferentes, lo que mata rainbow tables y oculta quién comparte credenciales.

¿JWT es cifrado o codificado? Por defecto, codificado: su payload es Base64url legible por cualquiera. Solo JWE (la variante menos usada) cifra. Firmar un JWT (JWS) garantiza que nadie lo modificó, no que nadie lo leyó.


Calcula hashes SHA-256 al instante con el generador de hashes, gratis y directamente en tu navegador.

Pruébalo sin código

Generador de Hash

MD5, SHA-1, SHA-256 y SHA-512.

Abrir Generador de Hash

Hecho por

Miguel Ángel Colorado Marin (MACM)

Full-Stack Developer · Guadalajara, España

Desarrollo aplicaciones web, herramientas digitales y proyectos completos — desde el diseño hasta el despliegue.

Contáctame