Subir un archivo
  1. base64hub
  2. Herramientas web y de tokens
  3. Decodificador Base64URL

Decodificador Base64URL: decodifica Base64 URL-safe

Pega una cadena Base64 URL-safe, como un segmento de token o un parámetro de URL, y lee lo que contiene. Los caracteres - y _ se reconocen automáticamente y se restaura el relleno = que falta.

Gratis sin registro, sin límites Local no se sube nada Automático se restaura el relleno Actualizado 27 oct 2026
Entrada 0 BSalida 0 BTamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo decodificar Base64URL

  1. Pega la cadena en Entrada · Base64. La página se abre con un ejemplo URL-safe.
  2. Lee el resultado en Salida · texto. La línea de estado muestra la variante (Base64URL o Standard), el número de bytes decodificados y el tipo detectado. Si faltaba el relleno, indica “Se añadió automáticamente el relleno que faltaba.”
  3. El JSON, el contenido habitual de los tokens, se indenta con Formatear JSON.
  4. Si el contenido es binario, como hashes o ID aleatorios, la herramienta indica que son datos binarios y enlaza a un decodificador adecuado.
  5. Usa Copiar salida o Descargar con el resultado.

Para codificar, usa el codificador Base64URL. Para convertir una cadena Base64URL a Base64 estándar sin decodificarla, usa Base64URL a Base64.

Ejemplos

Base64URLDecodificadoNota
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9{"alg":"HS256","typ":"JWT"}Un encabezado JWT típico
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSIsImFkbWluIjp0cnVlfQ{"sub":"1234567890","name":"Ada","admin":true}Un payload JWT; relleno restaurado
c3ViamVjdHM_X2Qsubjects?_d_ es la / URL-safe
8J-Riw👋- es el + URL-safe
E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM32 bytes binariosUn hash SHA-256, el ejemplo de PKCE del RFC 7636

Con el hash de la última fila, la salida de texto no tiene sentido. Ábrelo en Base64 a hex para ver los bytes como 13 d3 1e 96 ....

El relleno y por qué se puede restaurar

Base64URL se escribe normalmente sin =. Eso no pierde información: una cadena válida tiene una longitud de 4n, 4n + 2 o 4n + 3 caracteres, y el resto le dice al decodificador si el último grupo contiene uno o dos bytes. La herramienta añade el = que falta antes de decodificar y lo indica en la línea de estado.

Una longitud de 4n + 1 no puede darse nunca. Si ves el error “Longitud incorrecta: sobra o falta un carácter”, se perdió o se añadió un carácter al copiar el valor, por ejemplo en un salto de línea de un correo o de un log. El relleno explicado muestra la aritmética.

Muchos decodificadores estándar son menos tolerantes. atob() en los navegadores rechaza - y _ con InvalidCharacterError, y base64.urlsafe_b64decode de Python lanza Incorrect padding cuando falta el =.

Tokens, cookies y parámetros de URL

  • JWT. Un token tiene la forma xxxxx.yyyyy.zzzzz. Las dos primeras partes son JSON en Base64URL; la tercera es la firma, que es binaria. Decodifica las partes una a una aquí, o pega el token entero en el decodificador JWT, que además muestra la caducidad y verifica firmas. Base64 en JWT explica el formato.
  • Cookies e ID de sesión. Algunas cookies de sesión de frameworks, las de Flask por ejemplo, unen datos en Base64URL y una firma con puntos. Decodifica solo la parte de datos.
  • Parámetros de URL. El state de OAuth, los destinos de redirección y los enlaces para compartir a veces llevan JSON en Base64URL. Si el valor contiene %2F o %2B, se codificó además con porcentajes y hay que decodificarlo para URL primero.

Si una cadena mezcla - o _ con + o /, el decodificador se detiene con “La entrada mezcla caracteres estándar (+ /) y URL-safe (- _)”. Eso suele significar que se unieron dos valores o que uno se convirtió solo a medias.

Decodificar Base64URL en código

// Node.js
Buffer.from("c3ViamVjdHM_X2Q", "base64url").toString("utf8");   // "subjects?_d"

// Browsers with Uint8Array.fromBase64
new TextDecoder().decode(Uint8Array.fromBase64("c3ViamVjdHM_X2Q", { alphabet: "base64url" }));
import base64

def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

b64url_decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")   # b'{"alg":"HS256","typ":"JWT"}'

La línea del relleno funciona con cualquier longitud de entrada que sea Base64 válido. Más en Base64 en Node.js, JavaScript y Python.

Preguntas frecuentes

¿Cómo decodifico Base64URL?

Pégalo arriba; no hace falta ningún ajuste. En código, sustituye - por + y _ por /, añade = hasta que la longitud sea múltiplo de 4 y decodifica como Base64 normal, o usa un decodificador URL-safe como Buffer.from(s, "base64url") de Node.

¿Por qué me da un error con el carácter "."?

Has pegado un JWT entero. Sus tres partes van separadas por puntos y cada una se decodifica por separado. Pega una sola parte o usa el decodificador JWT para el token completo.

¿Por qué la línea de estado dice Standard para mi cadena Base64URL?

La cadena no contiene ninguno de -, _, + o /, así que es válida en los dos alfabetos y se decodifica igual de cualquier forma. Muchos encabezados de JWT son así.

¿Y si el valor sigue codificado con porcentajes?

Un = codificado (%3D) se gestiona solo. Otros escapes como %2F indican que el valor pasó por una codificación URL; pásalo antes por el decodificador de URL.