Cómo la Criptografía Protege Tus Datos (Guía Práctica)
La criptografía es la ciencia de mantener la información secreta y verificable. Impulsa cada candado HTTPS, cada contraseña almacenada de forma segura y cada token que demuestra que eres quien dices ser. No necesitas un título en matemáticas para entender cómo funciona — y entenderlo te convierte en un mejor desarrollador y en un usuario más seguro.
Las tres cosas que hace la criptografía
La mayoría de las operaciones criptográficas caen en una de tres categorías:
- Hashing — convierte cualquier entrada en una huella digital de longitud fija
que no se puede revertir.
- Cifrado — codifica los datos de forma que solo quien tenga la clave correcta
pueda leerlos.
- Codificación — convierte datos a una representación diferente sin ningún
secreto (Base64 es codificación, no cifrado).
Confundir estas tres cosas es uno de los errores de seguridad más comunes.
Hashing: la huella digital de un solo sentido
Una función hash toma cualquier entrada — una contraseña, un archivo, un registro de un millón de líneas — y produce una cadena corta de longitud fija. La misma entrada siempre produce la misma salida, pero no es posible trabajar hacia atrás desde el hash para recuperar la entrada.
SHA-256, por ejemplo, siempre produce una cadena hexadecimal de 64 caracteres. Ya sea que tu entrada tenga un carácter o un gigabyte, la salida tiene el mismo tamaño. Puedes probarlo en el generador de hash.
Por qué importa el hashing:
- Los sitios web almacenan tu contraseña como hash, nunca en texto plano. Cuando
inicias sesión, el sitio aplica hash a lo que escribiste y compara el resultado — tu contraseña real nunca está en una base de datos.
- Las comprobaciones de integridad de archivos comparan hashes. Si incluso un byte
de una descarga está dañado, el hash cambia por completo.
- Las firmas digitales usan hashing: aplicas hash a un documento y luego cifras ese
hash con una clave privada para crear una firma que cualquiera puede verificar.
Codificación: Base64 no es un secreto
Base64 es una forma de representar datos binarios como texto plano usando 64 caracteres imprimibles. Es reversible por cualquiera — no tiene clave, no tiene secreto. Su propósito es el transporte, no la seguridad: los adjuntos de correo, las URL de datos y los payloads JSON lo usan para transportar de forma segura datos binarios a través de sistemas que solo manejan texto.
Prueba el codificador/decodificador Base64 y observa que hacer clic en decodificar recupera perfectamente la entrada original. Ese es el punto — pero también significa que los datos codificados en Base64 no están protegidos de ninguna manera.
JWTs: hashing y Base64 juntos
Un JSON Web Token (JWT) une estas ideas en un patrón que ves en todas partes en la autenticación web. Un JWT tiene tres partes, cada una codificada en Base64url y separada por puntos:
- Cabecera — el algoritmo (p. ej.
HS256). - Payload — claims: ID de usuario, vencimiento, roles, etc.
- Firma — la cabecera y el payload con hash usando una clave secreta.
Cualquiera puede decodificar la cabecera y el payload — son solo Base64. La firma es lo que hace que el token sea confiable: solo el servidor que tiene la clave secreta puede producir una válida.
Pega cualquier JWT en el decodificador JWT para inspeccionar la cabecera y el payload. Verás exactamente lo que el servidor puede leer de tu token — y por qué nunca debes poner información sensible en el payload a menos que el token también esté cifrado.
Contraseñas fuertes: la entropía supera los patrones
La fortaleza de una contraseña se mide en entropía — cuántos intentos necesita un atacante en el peor caso. La longitud y la aleatoriedad importan mucho más que sustituciones como c0ntr@s3ña.
Una contraseña generada aleatoriamente de 16 caracteres usando mayúsculas, minúsculas, dígitos y símbolos tiene alrededor de 100 bits de entropía. Una palabra elegida por humanos con algunas sustituciones puede tener entre 20 y 30. La diferencia es enorme.
El generador de contraseñas produce contraseñas criptográficamente aleatorias usando la API crypto.getRandomValues del navegador — la misma fuente de aleatoriedad que las herramientas de seguridad profesionales. Nunca envía la contraseña a ningún lado.
El hilo conductor
Cada herramienta de la categoría de desarrollador que maneja datos — el generador de hash, el codificador Base64, el decodificador JWT, el generador de contraseñas — se ejecuta completamente en tu navegador. Ningún dato sale de tu máquina. Eso no es solo una comodidad; es una propiedad de seguridad: una herramienta que nunca ve tu texto plano no puede filtrarlo.
Entender qué hacen el hashing, la codificación y el cifrado — y qué no hacen — es la base para escribir software que maneje los datos de forma responsable.