Cómo decodificar Base64: texto, imágenes y JWT (gratis)

Por • 30 Octubre, 2026 • Herramientas para desarrolladores • 11 minutos de lectura

Decodifica cualquier cadena Base64 en segundos: ejemplos reales con texto, imágenes, JWT y Basic Auth, y por qué salen caracteres raros y cómo arreglarlo.

Para decodificar Base64, pega la cadena codificada en un decodificador Base64 y lee el resultado: SGVsbG8sIHdvcmxkIQ== se convierte en Hello, world!. Nuestro decodificador Base64 gratis lo hace con un clic en cualquier navegador, y la herramienta Base64 a imagen muestra las imágenes codificadas. El decodificador acepta Base64 «URL-safe», un prefijo data: pegado y la falta de relleno, y muestra un error si la entrada no es Base64. Si aun así el resultado sale como un montón de símbolos raros, casi siempre es porque los datos nunca fueron texto o porque hay varias cadenas pegadas. Esta guía te enseña a distinguir cada caso y a resolverlo.

Las herramientas son gratis y no necesitas cuenta para empezar. Sin cuenta tienes 5 usos de herramientas por día, y una cuenta gratuita de My Botsy (100 % gratis, sin spam) quita ese límite diario. Todos los ejemplos los ejecutamos el 30 de octubre de 2026 con nuestras herramientas o con el mismo código de decodificación que usan, y copiamos los resultados tal como salieron.

Qué es Base64 (y qué no es)

Base64 convierte cualquier conjunto de bytes (texto, una imagen, un PDF) en una cadena hecha solo de 64 caracteres seguros: A–Z, a–z, 0–9, + y /, más el = como relleno al final. Está definido en el RFC 4648 y existe para que los datos binarios puedan viajar por sistemas pensados para texto: adjuntos de correo, campos JSON, cabeceras HTTP, HTML y CSS.

Dos datos explican casi todos los problemas al decodificar:

  • Cada 3 bytes se convierten en 4 caracteres. Por eso lo codificado ocupa alrededor de un tercio más que el original, y por eso la longitud de la cadena suele ser múltiplo de 4 (uno o dos = completan el último grupo).
  • Base64 es codificación, no cifrado. No hay clave. Cualquiera que vea una cadena Base64 la decodifica en un segundo, así que nunca protege una contraseña ni un token. Si algo sensible está «escondido» en Base64, trátalo como texto plano.

Cómo decodificar Base64 en línea, paso a paso

  1. Copia solo la parte codificada. Deja fuera etiquetas como Authorization: Basic. El prefijo data:...;base64, se quita solo, y los saltos de línea y espacios dentro de la cadena no molestan.
  2. Pégala en el decodificador Base64 y pulsa Enviar.
  3. Lee el resultado. Si es texto legible, listo: cópialo con el botón de copiar.
  4. Si ves símbolos raros, signos de interrogación o un error, revisa si los datos son binarios (una imagen o un archivo) o si hay varias cadenas pegadas, con la sección de problemas más abajo.
  5. Si es una imagen, pega la misma cadena en Base64 a imagen para verla y descargarla.

Ejemplos resueltos (resultados reales)

Ejemplo 1: texto simple

Entrada: SGVsbG8sIHdvcmxkIQ==
Salida: Hello, world!

Trece caracteres de texto se convirtieron en 20 de Base64, los dos últimos de relleno. Es la cadena de prueba clásica y una buena forma de comprobar cualquier decodificador antes de confiar en él.

Ejemplo 2: tildes, eñes y otros caracteres

Entrada: Q2Fmw6kgY29uIGxlY2hl
Salida: Café con leche

Base64 no sabe de letras, solo de bytes. La é se guardó como dos bytes UTF-8 y nuestro decodificador los devuelve como UTF-8, así que se ve bien. Si un decodificador los interpreta como Latin-1, verías Café: esa es la señal típica de un problema de juego de caracteres, no de Base64. Lo mismo pasa con la ñ, que en el texto mal leído aparece como ñ.

Ejemplo 3: una cabecera Basic Auth

Una cabecera HTTP como Authorization: Basic dXNlcjpwYXNz lleva un usuario y una contraseña unidos por dos puntos. Al decodificar dXNlcjpwYXNz sale user:pass. Esa es toda la «protección», y por eso Basic Auth solo debe enviarse por HTTPS. Si encuentras una cabecera así en un log o en una captura compartida, da la contraseña por expuesta y cámbiala (nuestra guía de contraseñas seguras te dice por cuál).

Ejemplo 4: el payload de un JWT

Los JSON Web Tokens son tres partes en Base64 unidas por puntos: cabecera, payload y firma. Usan el alfabeto URL-safe (RFC 4648, sección 5), donde - reemplaza a + y _ reemplaza a /, y quitan el relleno =. Pegamos este payload en el decodificador:

eyJzdWIiOiI0MiIsIm5leHQiOiIvZG9jcz9wYWdlPTIiLCJuYW1lIjoiWm_DqyJ9

Fíjate en el _ cerca del final. Hasta el 30 de octubre de 2026 nuestro decodificador lo ignoraba en silencio, así que el resultado empezaba bien y luego se volvía basura. Ahora lee directamente el alfabeto URL-safe y la cadena se decodifica limpia:

{"sub":"42","next":"/docs?page=2","name":"Zoë"}

La falta de relleno tampoco es un problema: el decodificador lo añade por ti. Con el JSON en la mano, pégalo en el validador y formateador JSON para leerlo ordenado. Solo las dos primeras partes de un JWT son JSON; la tercera es una firma binaria y siempre se verá como ruido.

Ejemplo 5: una imagen en Base64

Pegamos en Base64 a imagen los 100 caracteres en Base64 de un PNG rojo de 4×4 píxeles (empieza por iVBORw0KGgo, como todo PNG en Base64). La herramienta mostró la imagen con opciones de descarga. En una prueba en el navegador, los mismos datos cargaron bien con saltos de línea, sin el == final y también con el prefijo data:image/png;base64, puesto (antes fallaba con el prefijo; se corrigió el 30 de octubre de 2026). Si el texto no es una imagen real, la herramienta lo avisa en lugar de mostrar una imagen rota.

Firmas útiles para adivinar qué hay en un Base64 binario: iVBORw0KGgo es PNG, /9j/ es JPEG, R0lGOD es GIF, JVBERi0 es PDF y UEsDB es un ZIP (lo que incluye .docx y .xlsx).

Por qué tu Base64 decodificado sale con caracteres raros

Es Base64 URL-safe

Busca - o _. Aparecen en JWT, en muchos tokens de API y en algunas URL. Nuestro decodificador los acepta tal cual, pero otros decodificadores y librerías necesitan que cambies - por + y _ por / antes. Si el token viene dentro de una URL y contiene %2B, %2F o %3D, pásalo antes por el decodificador de URL, porque son +, / y = codificados.

El prefijo sigue pegado

Probamos a decodificar data:text/plain;base64,SGVsbG8sIHdvcmxkIQ==. Nuestro decodificador ahora quita el prefijo y devuelve Hello, world!. Muchos otros no lo hacen: las letras de data, text, plain y base64 son caracteres Base64 válidos, así que también se decodifican y salen unos 15 bytes basura antes del texto (a nuestra herramienta le pasaba hasta el 30 de octubre de 2026). En otras herramientas, borra todo hasta la coma, incluida.

Los datos no son texto

Decodificar un PNG, un PDF o un ZIP como texto siempre da símbolos, porque esos bytes nunca fueron letras. Compara los primeros caracteres con las firmas de arriba y usa Base64 a imagen para las imágenes. Para otros archivos, decodifícalos a un archivo con uno de los comandos de abajo y comprueba su tipo real con el comprobador de tipo MIME.

Se juntaron varias cadenas

El relleno marca el final de una cadena Base64. SGVsbG8=V29ybGQ= son dos cadenas pegadas. Nuestro decodificador la rechaza con un error, y los decodificadores tolerantes dan Hello seguido de basura. Corta en cada = que no esté al final y decodifica cada parte por separado.

Nunca fue Base64

Nuestro decodificador valida la entrada, así que not base64! recibe un error claro («no es Base64 válido») en lugar de 6 bytes sin sentido (antes lo decodificaba igual). Las cadenas hexadecimales (solo 0–9 y a–f) y los identificadores aleatorios también pueden parecer Base64. Si nada de lo anterior explica el resultado, puede que la cadena sea otra cosa.

Decodificar Base64 sin un sitio web

Tokens, contraseñas, claves privadas o datos de clientes no deberías pegarlos en ningún sitio web, tampoco en el nuestro: nuestro decodificador funciona en nuestro servidor, así que el texto que envías sale de tu equipo. Estos comandos decodifican en local:

  • Linux: echo 'SGVsbG8sIHdvcmxkIQ==' | base64 --decode
  • macOS: echo 'SGVsbG8sIHdvcmxkIQ==' | base64 -D (las versiones recientes también aceptan --decode)
  • Windows PowerShell: [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIHdvcmxkIQ=='))
  • Python: base64.b64decode(s), o base64.urlsafe_b64decode(s) para el alfabeto URL-safe (necesita el relleno de vuelta)
  • Consola del navegador: atob('SGVsbG8sIHdvcmxkIQ=='), que solo maneja bien texto ASCII; para tildes y eñes pasa los bytes por TextDecoder

Para guardar un archivo decodificado en vez de mostrarlo, redirige la salida, por ejemplo base64 --decode archivo.b64 > archivo.pdf.

Codificar al revés

Para crear Base64, usa el codificador Base64 para texto e imagen a Base64 para imágenes. El codificador de texto codifica exactamente lo que escribes: It's da SXQncw== y las etiquetas HTML se conservan. Hasta el 30 de octubre de 2026 aplicaba primero la limpieza de entrada del sitio, que borraba todo lo que estuviera entre <...> y convertía It's en SXQmIzM5O3M=. Ya está corregido, así que si guardaste resultados de la versión anterior, vuelve a codificarlos.

Errores frecuentes

  • Tratar Base64 como un secreto. No oculta nada. Nunca guardes contraseñas ni claves de API «cifradas» en Base64.
  • Decodificar un JWT entero de golpe. Córtalo por los puntos y decodifica las dos primeras partes por separado.
  • Copiar las comillas. En JSON y en código, la cadena va entre comillas. Copia solo lo de dentro.
  • Esperar que la conversión aligere el archivo. Las descargas de Base64 a imagen ahora convierten de verdad (un PNG guardado como JPG o WEBP se vuelve a codificar, y el formato original se ofrece tal cual), pero no optimizan. Para aligerar una imagen, usa el optimizador de imágenes (mira nuestra guía para comprimir imágenes).
  • Incrustar imágenes grandes en Base64. Un data URI pesa un tercio más que el archivo y no se puede cachear por separado. Solo compensa con iconos diminutos.

Decodifica tu cadena ahora

Pégala en el decodificador Base64. Si es una imagen, usa Base64 a imagen, y si es JSON, termina en el validador JSON (nuestra guía para arreglar un JSON inválido te ayuda si no lo acepta). Todas son gratis y no necesitas cuenta para empezar.

Preguntas frecuentes

¿Cómo sé si una cadena está en Base64?

Usa solo A–Z, a–z, 0–9, + y / (o - y _ en la variante URL-safe), su longitud suele ser múltiplo de 4 y puede terminar en uno o dos signos =. La prueba de verdad es decodificarla: si sale texto legible o una firma de archivo conocida, acertaste.

¿Por qué mi Base64 decodificado muestra caracteres raros?

Casi siempre porque los datos son binarios, como una imagen, o son varias cadenas pegadas. Algunos decodificadores también fallan con Base64 URL-safe (- y _) o con un prefijo data:; el nuestro acepta los dos. Corrige la entrada y vuelve a decodificar.

¿Base64 es un cifrado?

No. Base64 es una codificación reversible sin clave, así que cualquiera puede decodificarla. Sirve para transportar datos, nunca para protegerlos.

¿Cómo convierto Base64 en imagen?

Pégala en una herramienta de Base64 a imagen. La nuestra la acepta con o sin el prefijo data:image/...;base64,. Una cadena que empieza por iVBORw0KGgo es un PNG y una que empieza por /9j/ es un JPEG.

¿Se puede decodificar Base64 sin relleno?

Normalmente sí. Nuestro decodificador y la mayoría de los decodificadores tolerantes aceptan cadenas sin el relleno =. Los estrictos, como b64decode de Python, necesitan que lo añadas hasta que la longitud sea múltiplo de 4.

¿El decodificador Base64 de My Botsy es gratis?

Sí. Es gratis y funciona en cualquier navegador. Sin cuenta tienes 5 usos de herramientas por día, y una cuenta gratuita y sin spam quita ese límite diario.

Cómo saber cuándo vence un certificado SSL (4 formas)

29 Octubre, 2026

Mira cuándo vence cualquier certificado SSL: en línea, en el navegador o con openssl y curl. Ejemplos reales y lo que una fecha vigente no g..

Cómo arreglar un JSON inválido: 10 errores comunes

28 Octubre, 2026

Arregla un JSON inválido rápido: entiende los errores Unexpected token y corrige comas finales, comillas, comentarios y corchetes, paso a pa..

Cómo consultar registros DNS de un dominio: A, MX, TXT y CNAME

28 Octubre, 2026

Consulta registros DNS en línea o con dig y nslookup. Qué hacen los registros A, AAAA, CNAME, MX, TXT, NS y CAA, y cómo resolver problemas c..