RFC 4648 §5 · base64url
Decodificar Base64URL, con relleno incluido.
Pega Base64 URL-safe (de un JWT, un parámetro de URL, un desafío WebAuthn o la API de Gmail) y se decodifica convirtiendo de nuevo - y _ y restaurando el relleno = que falta. Pega un JSON Web Token completo y la cabecera y la carga útil se muestran en una tabla.
Actualizado el · Funciona íntegramente en tu navegador
Conversor de Decodificar Base64URL
JSON Web Token
Opciones
Ctrl+Enter decodificar Ctrl+Shift+C copiar resultado Suelta un archivo en la entrada para cargarlo
Cómo decodificar Base64URL
- 01
Pega el valor base64url
Pega una cadena Base64 URL-safe o un JWT completo. Los caracteres - y _ y el relleno que falta se gestionan automáticamente.
- 02
Lee el resultado decodificado
Los valores simples se decodifican a texto o bytes. Un JWT se separa en cabecera y carga útil, con iat, nbf y exp mostrados como fechas.
- 03
Copia o sigue decodificando
Copia el JSON, dale formato o pulsa Enviar a la entrada si la carga útil contiene otro valor codificado.
Base64 frente a Base64URL
Base64 estándar usa + y /, que significan algo en las URL y los nombres de
archivo, y rellena con =, que hay que codificar con porcentajes en una cadena de consulta.
Base64URL, definido en la sección 5 de la RFC 4648, cambia solo esos caracteres para que el valor pueda viajar
en una URL sin alterarse:
| Base64 | Base64URL | |
|---|---|---|
| Valor 62 | + | - |
| Valor 63 | / | _ |
| Relleno | = obligatorio | normalmente omitido |
| Definido en | RFC 4648 §4 | RFC 4648 §5 |
Los otros 62 caracteres son idénticos, así que la conversión es un simple intercambio de caracteres más el relleno.
Cómo restaurar el relleno que falta
Muchos decodificadores estrictos rechazan la entrada sin relleno. La regla para volver a añadirlo depende solo de la longitud de la cadena módulo 4:
- resto 0: no hace falta relleno;
- resto 2: añade
==; - resto 3: añade
=; - resto 1: imposible en Base64 válido; el valor está truncado.
Este decodificador aplica la regla por ti e informa de un valor truncado en lugar de devolver basura en silencio.
Dónde te encuentras base64url
- JSON Web Tokens: la cabecera, la carga útil y la firma son tres segmentos base64url unidos por puntos. La firma se muestra pero no se verifica, porque para eso hace falta la clave.
- WebAuthn y passkeys: desafíos, identificadores de credencial y datos del cliente.
- OAuth PKCE: el
code_challengees un resumen SHA-256 en base64url. - API de Gmail: los cuerpos de los mensajes y los adjuntos van codificados en base64url.
- Identificadores cortos y tokens en URL, cookies y nombres de archivo.
Decodificar base64url en código
# Python: urlsafe_b64decode still needs the padding back
import base64
def b64url_decode(s: str) -> bytes:
return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))
// Node.js 16+
Buffer.from(token, "base64url").toString("utf8");
// Go
base64.RawURLEncoding.DecodeString(s)
// Java 8+: the URL decoder accepts unpadded input
Base64.getUrlDecoder().decode(s);
Para Base64 estándar y más lenguajes, consulta la página principal para decodificar Base64.
Más decodificadores
Otras formas de decodificar Base64.
- Decodificar Base64 Decodifica cualquier Base64 a texto, imagen o archivo, con más de 20 juegos de caracteres.
- Base64 a imagen Previsualiza un PNG, JPEG, GIF, WebP o SVG en Base64 y guárdalo como un archivo de imagen real.
- Base64 a PDF Convierte una cadena Base64 de una API o un correo en un PDF que puedes ver y guardar.
- Base64 a hexadecimal Ve cada byte decodificado en un volcado hex o cópialo como una cadena hexadecimal continua.
Preguntas
Decodificar Base64URL: preguntas frecuentes.
¿Cómo decodifico Base64URL?
Sustituye - por + y _ por /, añade relleno = hasta que la longitud sea múltiplo de cuatro y decodifica como Base64 normal. Esta página hace las tres cosas automáticamente: pega el valor y el resultado decodificado aparece al instante.
¿Base64URL es lo mismo que la codificación URL?
No. La codificación URL (codificación por porcentajes) escapa caracteres sueltos como %XX. Base64URL es una variante de Base64 que convierte bytes a un alfabeto seguro para URL. Si un valor contiene %2B o %3D, es Base64 codificado por porcentajes: decodifica primero los porcentajes.
¿Puedo decodificar un JWT con esta herramienta?
Sí. Pega el token completo y la cabecera y la carga útil se decodifican desde base64url y se muestran en una tabla, con las marcas de tiempo convertidas en fechas. La firma se muestra pero no se verifica, porque eso requiere la clave secreta o pública.
¿Por qué Python da «Incorrect padding» con entradas base64url?
base64.urlsafe_b64decode espera el relleno = que base64url suele omitir. Añade "=" * (-len(s) % 4) a la cadena antes de decodificar, como en el ejemplo de esta página.