Artículo
Codificar y decodificar datos en privado
Cada día los desarrolladores pegan tokens, cargas útiles y credenciales en páginas de codificación y decodificación. Las más cómodas se ejecutan en un servidor, lo que significa que tus datos salen de tu equipo para una tarea que nunca lo necesitó. Estas cuatro herramientas funcionan por completo en tu navegador, así que los datos se quedan contigo.
Base64: parece revuelto, pero no es secreto
Base64 es una codificación, no un cifrado. Convierte datos binarios en texto capaz de sobrevivir a un copiar y pegar o al tránsito por sistemas que solo manejan caracteres sencillos. Cualquiera que vea la cadena Base64 puede volver a decodificarla al original en un solo paso, de modo que una cadena que contiene una clave de API, un certificado privado o el cuerpo de un correo es totalmente legible para quien la tenga. El riesgo es que ese valor suele esconderse en archivos de configuración, data URL o cabeceras de autenticación y parece oscuro, lo que tienta a pegarlo en el primer decodificador que se encuentra en línea. Ese decodificador recibe el secreto en bruto. Una herramienta que decodifica Base64 de forma local te muestra los bytes originales sin que el valor llegue nunca a un servidor.

Codificación de URL: las cadenas de consulta llevan más de lo que crees
La codificación porcentual permite poner espacios, acentos y caracteres reservados en una URL de forma segura. El texto que codificas o decodificas suele ser una cadena de consulta real de una aplicación, y estas transportan identificadores de sesión, términos de búsqueda, direcciones de correo, destinos de redirección y a veces parámetros firmados. Pegar una URL completa en un codificador remoto entrega todo eso a un tercero de una sola vez, y las cadenas de consulta son justo el tipo de valor que acaba en los registros del servidor. Codificar y decodificar en el navegador significa que la URL se procesa en memoria en tu propio dispositivo y nunca se transmite mientras trabajas con ella.
JWT: la carga útil está firmada, no oculta
Un JSON Web Token consta de tres secciones Base64url unidas por puntos: una cabecera, una carga útil y una firma. La firma demuestra que el token no se ha manipulado, pero no hace nada por ocultar la carga útil, que se decodifica a JSON legible con identificadores de usuario, roles, tiempos de expiración y cualquier reclamación personalizada que añadiera el emisor. Un token válido es además una credencial viva: hasta que caduca, quien lo tenga puede actuar como el usuario. Pegar un token funcional en un decodificador en línea envía una credencial activa a un servidor que no controlas. Un decodificador que analiza el token en tu navegador revela la misma cabecera y la misma carga útil sin que ese token salga nunca de la página.

Hashing: la entrada importa más que el resumen
Una función hash convierte cualquier entrada en un resumen de longitud fija, y no puedes invertir el resumen para recuperar la entrada. Esa propiedad hace que el hashing sea útil para verificar la integridad de un archivo o comparar valores sin guardar el original. El truco está en el lado de la entrada: para calcular el hash de una contraseña, un documento o un secreto de configuración, tienes que dar el valor real a la herramienta. Si esa herramienta funciona en un servidor, la entrada sensible viaja hasta allí aunque solo se devuelva el resumen inofensivo. Calcular el hash de forma local mantiene la entrada en tu dispositivo, así obtienes el resumen que necesitas sin exponer aquello que estabas resumiendo.
Codificación Base64: mapeo de bytes y relleno
Base64 traduce bytes de 8 bits a caracteres de 6 bits agrupando tres bytes de entrada (24 bits) en cuatro valores de 6 bits. Cada valor de 6 bits se corresponde con un carácter del alfabeto Base64 (A-Z, a-z, 0-9, +, /). Dado que el proceso requiere entradas divisibles por 24 bits, las entradas cortas se rellenan: un byte restante produce dos caracteres de relleno (==), dos bytes restantes producen uno (=). La variante Base64url, usada en JSON Web Tokens (JWTs), reemplaza + por - y / por _ para que la cadena sea segura en URLs, y elimina por completo el relleno =, ya que los caracteres de relleno pueden causar errores en analizadores de URI estrictos. Reconocer esta distinción es importante al depurar el manejo de tokens: un JWT que parece malformado puede simplemente estar codificado en Base64url en lugar de Base64 estándar.
Firmas JWT: HS256, RS256 y confusión de algoritmos
La seguridad de un JSON Web Token depende por completo de su firma, el tercer segmento separado por puntos. Con HS256 (HMAC-SHA256), el servidor firma la cabecera y el payload codificados en Base64url usando una clave secreta. La función hash SHA-256 proporciona resistencia a colisiones: es computacionalmente inviable producir un payload modificado que genere la misma firma sin conocer la clave secreta. Con RS256, el servidor firma con una clave privada RSA y verifica con una clave pública. Una vulnerabilidad conocida llamada confusión de algoritmos surge cuando una biblioteca de servidor no aplica de forma estricta el tipo de algoritmo esperado. Un atacante puede cambiar el campo alg de la cabecera del token de RS256 a HS256 y firmar el token usando la clave pública del servidor como secreto HMAC, ya que las claves públicas suelen ser accesibles. Decodificar la cabecera del JWT localmente en el navegador permite verificar qué algoritmo está realmente especificado, sin exponer el token activo a sistemas de registro de terceros.
Herramientas en este artículo
- Codificador / Decodificador Base64Codifica o decodifica Base64, texto y archivos. Sin subida, 100% local.
- Codificador / Decodificador de URLCodifica o decodifica cadenas URL con codificación porcentual. Sin subida, 100% local.
- Decodificador JWTDecodifica un JWT (encabezado, payload, caducidad) sin enviarlo a ningún lado. Sin verificación de firma.
- Generador de hashGenera hashes MD5, SHA-1, SHA-256, SHA-512 a partir de texto o archivos. Sin subida.
Preguntas frecuentes
¿Es Base64 o la codificación de URL una forma de seguridad?
No. Ambas son codificaciones reversibles diseñadas para el transporte seguro de datos, no para protegerlos. Cualquiera que pueda leer la cadena codificada la decodifica al instante, sin clave ni contraseña. Si necesitas mantener un valor confidencial, cífralo con un algoritmo adecuado y gestiona la clave por separado. Trata cualquier valor en Base64 o codificado en porcentaje como si estuviera escrito en texto claro.
¿Por qué importa dónde decodifico un token o calculo el hash de una contraseña?
Porque la entrada es la parte sensible. Un JWT válido es una credencial viva, y la contraseña cuyo hash calculas es el secreto real. Una herramienta basada en servidor recibe esa entrada en bruto antes incluso de devolver un resultado, lo que significa que una copia puede quedar registrada o conservada en un lugar que no ves. Una herramienta que se ejecuta en tu navegador realiza la misma operación en memoria en tu propio equipo, así que el token o la contraseña nunca se envían a ningún sitio.