Codificación y Hashing: Guía para Developers
Guía práctica de codificación Base64, URL, algoritmos de hash y tokens JWT. Herramientas y conceptos que todo desarrollador usa.
La codificación y el hashing aparecen en todas partes del desarrollo web. ¿Incrustar imágenes en CSS? Base64. ¿Pasar datos en URLs? Codificación URL. ¿Almacenar contraseñas? Hashing. ¿Autenticar usuarios? JWTs. No son conceptos exóticos — son necesidades diarias.
Base64: de binario a texto
Base64 convierte datos binarios en texto ASCII. Suena simple, pero es sorprendentemente útil.
¿Necesitas incrustar una imagen pequeña directamente en HTML o CSS? Base64. ¿Enviando datos binarios a través de una API JSON? Base64. ¿Codificando credenciales para Basic Auth? Lo adivinaste.
El codificador/decodificador Base64 maneja ambas direcciones. Pega tus datos binarios o texto, obtén la versión codificada. Pega Base64, obtén el original de vuelta. Lo uso constantemente para depurar adjuntos de email y data URIs.
Una advertencia: Base64 aumenta el tamaño aproximadamente un 33%. Bien para recursos pequeños, problemático para archivos grandes.
Codificación URL: solo caracteres seguros
Las URLs tienen reglas sobre qué caracteres están permitidos. Espacios, caracteres especiales, texto no ASCII — todo necesita codificación para viajar seguro por la web.
El Codificador URL convierte caracteres problemáticos en equivalentes codificados con porcentaje. Ese espacio se convierte en %20. Tu emoji se convierte en una larga cadena de códigos de porcentaje.
Esto importa cuando construyes query strings dinámicamente, manejas entrada de usuario en URLs, o depuras por qué un enlace no funciona. A menudo el problema es un solo carácter sin codificar rompiendo toda la URL.
Hashing: transformación de un solo sentido
El hashing toma una entrada y produce una salida de longitud fija. La misma entrada siempre da el mismo hash. Pero no puedes revertirlo — ese es el punto.
El Generador de Hash soporta MD5, SHA-1, SHA-256 y otros. Usa SHA-256 para cualquier cosa relacionada con seguridad. MD5 está bien para checksums pero está roto para seguridad.
Usos comunes: verificar integridad de archivos (¿se completó la descarga correctamente?), almacenar contraseñas (¡nunca guardes texto plano!), crear identificadores únicos del contenido.
Para codificación HTML, se trata de prevenir ataques XSS escapando caracteres especiales como < y > antes de mostrar entrada del usuario.
JWT: tokens que llevan datos
Los JSON Web Tokens están en todas partes en la autenticación moderna. ¿Esa cadena larga que tu API retorna? En realidad son tres partes codificadas en Base64 separadas por puntos.
El Decodificador JWT separa esto. Ve el header (algoritmo usado), payload (los claims actuales), y verifica la estructura. No puedes verificar la firma sin el secreto, pero puedes inspeccionar todo lo demás.
¿Depurando problemas de auth? Verifica la expiración del token. ¿Claims incorrectos? Míralos claramente. ¿El token no decodifica? Quizás está malformado.
Eligiendo la herramienta correcta
La codificación es reversible — siempre puedes obtener el original de vuelta. El hashing no — es un camino de un solo sentido.
Usa Base64 para: incrustar binario en texto, Basic Auth, data URIs.
Usa codificación URL para: query strings, caracteres especiales en URLs.
Usa hashing para: contraseñas, verificaciones de integridad, IDs únicos.
Usa JWT para: tokens de autenticación, pasar claims entre servicios.
Estas transformaciones son bloques de construcción de la seguridad web y el manejo de datos. Entender cuándo codificar vs. hashear, y tener herramientas listas para ambos, hace el desarrollo más fluido y seguro.