Cómo decodificar Base64 a texto
- Pega la cadena Base64 que quieres decodificar en el recuadro de arriba, estándar o URL-safe, con relleno o sin él.
- Haz clic en Base64 Decode, el texto decodificado aparece al instante, justo debajo.
- Haz clic en Copiar al portapapeles para coger el resultado, o pega algo nuevo y ejecútalo de nuevo.
No hay archivo que elegir, ni barra de progreso de subida, todo es una operación en un clic, dentro del navegador.
Por qué decodificar Base64
Base64 aparece en cualquier sitio donde un sistema necesite mover bytes arbitrarios a través de un canal que solo maneja texto de forma segura: una cabecera HTTP Authorization: Basic, el segmento de cabecera y payload de un JSON Web Token (JWT), una URI data: incrustada en HTML o CSS, una variable de entorno con un certificado o clave, o un blob binario metido en un campo JSON. Leer cualquiera de eso como humano, inspeccionar qué hay realmente dentro de un JWT, comprobar a qué se decodifica la cabecera de Basic Auth de una API, o recuperar el texto original de un payload que produjo un script, significa decodificarlo primero.
Hacer esto a mano o levantar un script de prueba cada vez es una fricción que no necesitas, esta página ejecuta las propias primitivas de decodificación del navegador en el instante en que haces clic en el botón, sin configuración y sin consola necesaria.
Manejo correcto de UTF-8, el detalle que la mayoría de decodificadores Base64 hacen mal
La función integrada atob() de JavaScript parece la herramienta obvia para el trabajo, pero tiene un filo peligroso: devuelve una “cadena binaria” donde cada carácter de JavaScript representa exactamente un byte decodificado, no un carácter decodificado. Devuelve esa cadena directamente y cualquier secuencia UTF-8 multibyte en el texto original (una letra acentuada como é, un emoji, o una escritura no latina como el japonés o el árabe) sale como mojibake corrupto en lugar del texto real.
Esta herramienta evita ese error tratando la salida de atob() puramente como bytes en bruto: el código de cada carácter se convierte en una entrada de un Uint8Array, y el TextDecoder del navegador reconstruye entonces esos bytes en la cadena Unicode correcta. Es el espejo exacto de cómo construye su salida la herramienta complementaria Codificador Base64, así que una cadena como café 🎉 se decodifica de vuelta exactamente a café 🎉, verificado contra el propio Buffer.from(base64, 'base64').toString('utf-8') de Node.js como referencia independiente, no solo una ida y vuelta contra el propio codificador de este sitio.
Base64 URL-safe y relleno faltante, gestionados automáticamente
El Base64 estándar usa + y / en su alfabeto y rellena el resultado con caracteres = finales para que su longitud sea siempre un múltiplo de 4. Muchos sistemas del mundo real (JWT, parámetros de URL, nombres de archivo) usan en su lugar una variante “URL-safe”: - en lugar de +, _ en lugar de /, y el relleno con frecuencia se omite por completo ya que no hace falta una vez que se conoce la longitud de antemano.
Esta herramienta detecta ambas formas de manera transparente: cambia los caracteres URL-safe de vuelta a los estándar, y luego vuelve a añadir el relleno correcto, == cuando la longitud queda 2 corta de un múltiplo de 4, un solo = cuando queda 1 corta, y ninguno en absoluto cuando la longitud ya divide de forma exacta entre 4. Esto se verifica contra un segmento real de payload de JWT, así como ejemplos construidos a mano de URL-safe/sin relleno, así que un segmento de JWT copiado directamente de un token se pega y decodifica sin ninguna limpieza manual.
La entrada mal formada recibe un error claro, no basura
Un Base64 inválido (una errata, un copiar-pegar truncado, o texto que nunca fue Base64 en absoluto) normalmente hace que atob() lance una DOMException cruda y críptica. Esta herramienta captura eso (junto con el caso en el que una secuencia de bytes decodificada resulta no ser UTF-8 válido en absoluto) y muestra un error en lenguaje sencillo explicando qué salió mal, en lugar de una traza de pila del navegador o basura devuelta en silencio.
Privado, porque tu texto nunca sale de tu dispositivo
Parte de lo que la gente pega en un decodificador Base64 online es sensible: un token de API, parte de un JWT que lleva reclamaciones de usuario, un identificador interno. Muchos sitios de “decodificador Base64 online gratis” enrutan ese texto a través de un servidor backend de todas formas, lo cual es un riesgo innecesario para algo que necesita cero acceso a la red para calcularse. Esta herramienta ejecuta la decodificación usando solo el propio motor de JavaScript de tu navegador, nada se transmite, registra ni almacena, y funciona exactamente igual sin conexión una vez cargada la página.
Usos habituales
- Inspeccionar los segmentos de cabecera y payload de un JSON Web Token (JWT) para ver las reclamaciones reales dentro, o usa el Decodificador de JWT dedicado para decodificar todo el token (cabecera, payload y caducidad) en un solo paso en lugar de segmento por segmento.
- Decodificar una cabecera HTTP
Authorization: Basicde vuelta a su formausuario:contraseña. - Recuperar el texto o JSON original de una respuesta de API o entrada de registro codificada en Base64.
- Leer el payload codificado de una URI
data:, o una variable de entorno con un valor codificado. - Decodificar texto no ASCII (letras acentuadas, emoji, escrituras no latinas) correctamente de vuelta a los caracteres originales.
- Leer un valor Base64 plano, en contraposición a un bloque de texto cifrado de Cifrar un Mensaje de Texto con una Contraseña, la salida de esa herramienta parece Base64 pero requiere la contraseña correcta para descifrarse de verdad, no solo decodificarse.

