Codificador y decodificador Base64url
«hello world» se convierte en aGVsbG8gd29ybGQ con Base64url, el Base64 seguro para URL de la sección 5 del RFC 4648: usa guion y guion bajo en vez de más y barra y no añade signos igual, así que los tokens viajan intactos en enlaces. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- hello world
- Modo de cálculo
- Encode
- Resultado
- aGVsbG8gd29ybGQ
- Codificación
- base64url
- Bytes de entrada
- 11
- Bytes de salida
- 15
Este codificador Base64url convierte texto plano en Base64 seguro para URL, y decodifica cadenas Base64url de vuelta a texto UTF-8, usando el alfabeto de la sección 5 de RFC 4648. Elija codificar para convertir un mensaje, un conjunto de claims, o una cadena de configuración en una carga útil Base64url compacta, o elija decodificar para recuperar el texto original de un token seguro para URL que ya tenga. El motor es totalmente determinista: la misma entrada y el mismo modo siempre producen el mismo resultado, sin llamadas de red, sin sales aleatorias y sin atajos que dependan de la fecha. Entre las comprobaciones habituales están codificar hello world en aGVsbG8gd29ybGQ, y decodificar esa cadena de vuelta a la frase original.
Qué es Base64url y qué devuelve esta herramienta
Base64url es la variante segura para URL del Base64 clásico, definida en la sección 5 de RFC 4648. Ambos esquemas relacionan cada tres bytes de entrada con cuatro símbolos de seis bits tomados de un alfabeto de sesenta y cuatro caracteres, pero Base64url reemplaza los símbolos más y barra por menos y guion bajo, y omite el relleno de signos igual que el Base64 estándar añade cuando la longitud en bytes no es múltiplo de tres.
Ese pequeño cambio de alfabeto es la razón por la que los tokens de identidad, los parámetros de estado de OAuth, los fragmentos de cookies firmadas, y los hashes de contenido viajan limpiamente dentro de URL y atributos HTML sin codificación de porcentaje.
Esta página siempre usa ese alfabeto sin relleno y seguro para URL: el modo de codificación codifica su texto en UTF-8, empaqueta los bytes, y devuelve solo A a Z, a a z, cero a nueve, menos, y guion bajo; el modo de decodificación invierte el proceso y rechaza los caracteres del Base64 estándar, los espacios en blanco, y los últimos cuantos incompletos.
Dónde aparece Base64url en enlaces y tokens
Los desarrolladores se encuentran con Base64url cuando inspeccionan segmentos JWT, elaboran valores de estado y nonce de OAuth, incrustan pequeños claims seguros para binario en parámetros de consulta, o almacenan identificadores opacos en ficheros de configuración de solo texto. Los equipos de frontend decodifican tokens seguros para URL durante la depuración de integración, sin pegar datos en scripts improvisados que reintroducen por accidente más y barra.
Los servicios de backend codifican fragmentos de configuración o pequeños resúmenes binarios antes de colocarlos en URL de redirección donde el Base64 estándar se rompería. Los ingenieros de calidad generan pares de codificación y decodificación deterministas para pruebas de contrato, de modo que un middleware que dice admitir Base64url no pueda cambiar de alfabeto en silencio. Los educadores usan la misma herramienta al enseñar la diferencia entre el Base64 MIME y la variante segura para URL que estandarizan las pilas de autenticación modernas.
Qué puede hacer con ella
Práctica de tokens JWT y OAuth
Codifique o decodifique segmentos seguros para URL usados en JWT, estado de OAuth, y valores nonce, sin relleno de Base64 estándar ni caracteres +/.
Cargas útiles seguras para cadenas de consulta
Convierta texto corto en Base64url para que sobreviva a parámetros de consulta y segmentos de ruta sin sorpresas de codificación de porcentaje.
Preguntas frecuentes
¿Cuánto cuesta el codificador Base64url?
Es gratis en su navegador, en esta página.
¿En qué se diferencia Base64url del Base64 estándar?
Base64url usa - y _ en lugar de + y /, y esta herramienta nunca emite ni acepta relleno =. El Base64 estándar con + / = se rechaza al decodificar.
¿Qué ocurre si pego Base64 estándar con + o =?
Reemplace + por -, / por _, quite el relleno, o use una herramienta de Base64 estándar en su lugar.
¿El resultado es determinista?
Sí. El mismo texto y el mismo modo siempre producen el mismo resultado, sin red, aleatoriedad, ni comportamiento dependiente de la fecha.
¿Por qué mi resultado en Base64url no termina en signos igual?
Porque Base64url omite el relleno que añade el Base64 estándar. «hello world» se convierte en aGVsbG8gd29ybGQ sin nada detrás. Al decodificar, una longitud que deja un solo carácter suelto en un grupo de cuatro se rechaza, porque no puede formar bytes completos.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/base64url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world"}'const res = await fetch("https://api.kit.forhosting.com/enc/base64url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base64url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base64url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base64url", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "hello world"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base64url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
A diferencia del Base64 clásico, la salida nunca contiene los caracteres más o barra, y nunca termina con relleno de signos igual, así que los tokens sobreviven a cadenas de consulta, segmentos de ruta, y JSON sin escape adicional.
Qué es Base64url y qué devuelve esta herramienta
La respuesta en JSON incluye result para la cadena transformada, mode que refleja encode o decode, encoding fijo en base64url, e input_bytes más output_bytes para que pueda verificar tamaños en pruebas. No hay ruta en streaming ni una alternativa silenciosa al alfabeto clásico: o la cadena es texto Base64url válido, o la solicitud falla con invalid_input. Si necesita el Base64 estándar con relleno, con más y barra, use un endpoint dedicado de Base64 estándar; esta página es solo para el contrato seguro para URL y sin relleno que JWT y muchas API modernas ya esperan.
Cómo se interpretan el texto y el modo, y cómo los resultados se mantienen reproducibles
Encode acepta cualquier cadena Unicode, la convierte con el TextEncoder de la plataforma en bytes UTF-8, y luego emite Base64url sin relleno. Decode exige una cadena Base64url pura: una longitud módulo cuatro igual a uno se rechaza porque no puede representar un número entero de bytes, y cualquier carácter fuera del alfabeto seguro para URL falla con un mensaje claro que señala más, barra, o igual cuando aparecen esos símbolos del Base64 estándar. Después de recuperar los bytes, una decodificación UTF-8 estricta garantiza que la basura binaria no se convierta en texto ininteligible. El campo de carga preferido es text, con los alias input, value y s, para que formularios, cadenas de consulta y clientes de SDK puedan reutilizar el mismo contrato sin renombrar columnas. Mode toma encode por defecto y acepta decode explícitamente; los alias op, direction y action se relacionan con el mismo interruptor para scripts que ya usan esos nombres. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite el mismo resultado matemático dentro de un flujo automatizado, sin tener que reimplementar usted mismo las tablas de Base64url. Las entradas inválidas devuelven invalid_input y no se cobran, lo que mantiene la validación barata mientras las transformaciones exitosas siguen teniendo un precio fijo por elemento.
Dónde encaja Base64url en tokens, API y fixtures de prueba
En esta página el trabajo se ejecuta enteramente en su navegador; a través de la API, cada consulta exitosa cuesta $0.002, la validación fallida no se cobra, y no se almacena nada después de que se devuelve la respuesta. Esa división —exploración interactiva gratuita y una API de pago idéntica— coincide con el resto del catálogo tier A del KIT y le permite pasar de una demostración de aula a un flujo automatizado sin cambiar el resultado codificado. Combínela con ayudantes de JWT o de hash cuando necesite pasos criptográficos relacionados, y con otros endpoints de codificación cuando esté construyendo un pequeño laboratorio de herramientas de texto gratuitas y deterministas.
Casos de integración
Fixtures deterministas de integración continua
Genere cadenas Base64url reproducibles para pruebas unitarias, ficheros golden, y comprobaciones de contrato entre servicios.
Preguntas técnicas
¿Qué modos se admiten?
mode=encode (por defecto) convierte texto plano en Base64url. mode=decode convierte una cadena Base64url de vuelta a texto UTF-8.