decode | inspect | copy

> decodificador base64 | paste | decode <

// Pega cualquier cadena Base64 — estándar, URL-safe o sin padding — y decodifica a texto UTF-8 al instante. Se ejecuta 100 % en tu navegador.

0 caracteres
[AUTO]

Detección automática de formato

Detecta Base64 estándar RFC 4648, Base64 URL-safe (-_) y padding ausente automáticamente. Sin configuración — solo pega.

[LOCAL]

100 % en el navegador

Tus cadenas Base64 nunca salen de tu dispositivo. Sin subidas al servidor, sin logs, sin telemetría. Seguro para tokens, credenciales y datos privados.

[FAST]

Decodificación instantánea

Decodifica mientras escribes. Maneja texto UTF-8 multi-byte, emojis, JSON, XML, binario como Base64. Tamaño de entrada ilimitado.

// CÓMO FUNCIONA LA DECODIFICACIÓN BASE64

Algoritmo de decodificación Base64:

Base64 codifica 3 bytes de datos binarios en 4 caracteres ASCII de un alfabeto de 64 caracteres (A-Z, a-z, 0-9, +, /). La decodificación invierte el proceso: cada carácter se mapea a un valor de 6 bits, y cuatro grupos de 6 bits se combinan de nuevo en tres bytes de 8 bits. Los caracteres de padding (=) se añaden para que la longitud codificada sea múltiplo de 4. Este decodificador acepta entradas con padding, sin padding y URL-safe, y devuelve texto UTF-8.

Ejemplo de decodificación:

Entrada: SGVsbG8sIEJhc2U2NCE=
Bits   : 01001000 01100101 01101100 01101100
         01101111 00101100 00100000 01000010
         01100001 01110011 01100101 00110110
         00110100 00100001
Salida : Hello, Base64!

Escenarios comunes de decodificación:

  • >Decodificar cabecera y payload JWT (antes de la firma)
  • >Leer archivos adjuntos de correo codificados en Base64 (MIME)
  • >Inspeccionar parámetros URL Base64 y tokens OAuth state
  • >Extraer texto de Data URIs (data:text/plain;base64,...)
  • >Depurar respuestas API que envuelven binario como Base64

// PREGUNTAS FRECUENTES

¿Cómo decodifico una cadena Base64 online?

Pega la cadena Base64 en el área ENTRADA de arriba — el decodificador se ejecuta automáticamente al escribir (auto-decode habilitado por defecto). El texto decodificado aparece al instante en el área SALIDA. También puedes pulsar [DECODE] explícitamente o usar Ctrl/Cmd + Intro. Todo se ejecuta localmente en tu navegador; nada se envía a un servidor, por lo que pegar tokens JWT, OAuth state o datos confidenciales es seguro.

¿Qué variantes de Base64 admite este decodificador?

Todas. El decodificador auto-detecta y acepta:
Base64 estándar (RFC 4648) — alfabeto A-Z a-z 0-9 + / con padding =.
Base64 URL-safe (RFC 4648 §5) — alfabeto con - y _ en lugar de + y /. Lo usan JWT, OAuth, APIs de Google, URLs prefirmadas de AWS S3.
Base64 sin padding — los = finales se omiten. Común en JWT, donde el decodificador debe añadir padding automáticamente.
Tolerante a espacios — saltos de línea, tabulaciones y espacios dentro de la cadena Base64 se eliminan antes de decodificar (maneja la salida de 76 columnas MIME en cuerpos de email).

El formato detectado se muestra como insignia debajo de los botones, para que sepas qué variante clasificó el decodificador para tu entrada.

¿Por qué mi Base64 decodifica a galimatías o falla con error?

La mayoría de los fallos de decodificación tienen una de estas cinco causas:

1. La entrada no es realmente Base64. Mucha gente confunde Base64 con hex, Base32 o codificación URL. Base64 solo usa A-Z a-z 0-9 + / = (o - _ para URL-safe). Si la cadena contiene %20, es codificación porcentual; si solo tiene 0-9 a-f, probablemente es hex.

2. Truncamiento. La longitud Base64 debe ser múltiplo de 4 tras el padding. Un copiar-pegar que pierde los == finales causa errores de "longitud inválida". Este decodificador rellena automáticamente, pero cadenas severamente truncadas fallan igual.

3. URL-safe y estándar mezclados. Si +/-_ están todos presentes, la cadena es ambigua y probablemente está corrupta. Solo debería usarse una variante.

4. Doble codificación. A veces una cadena se codifica en Base64 dos veces. Decodificar una vez produce galimatías que es en sí mismo Base64. Decodifica otra vez para obtener el texto final.

5. Bytes originales no son UTF-8. Base64 decodifica a bytes. Si los bytes originales no son UTF-8 válido (p. ej. binario crudo como un blob cifrado o un PNG), la salida decodificada parecerá mojibake. Es esperado — usa una herramienta Base64-a-archivo en su lugar.

¿Cómo decodifico un JWT con este decodificador Base64?

Un JWT tiene tres partes separadas por puntos: header.payload.signature. Las tres son Base64 URL-safe sin padding. Para inspeccionar el payload:

1. Copia el segmento del medio (entre los dos puntos).
2. Pégalo en el decodificador de arriba. Auto-decode gestiona el alfabeto URL-safe y añade padding faltante.
3. Obtienes el payload JSON con claims como iss, sub, exp, iat.

La firma (tercer segmento) es una salida binaria HMAC o RSA — decodificarla como texto produce galimatías, lo cual es esperado. Para un inspector JWT completo con verificación de firma, usa nuestro decodificador JWT dedicado.

Nota de seguridad: decodificar un JWT no lo verifica. Cualquiera puede leer un payload JWT — es por diseño. La firma prueba que el token vino del emisor; se verifica por separado con la clave pública del emisor o el secreto compartido.

¿Puedo decodificar Base64 en línea de comandos (bash, PowerShell, Python)?

Sí — cada plataforma principal trae un decodificador Base64:

macOS / Linux (bash/zsh):
echo 'SGVsbG8=' | base64 -d — devuelve Hello. Usa -D en macOS si -d no funciona. Para entrada URL-safe, canaliza con tr '_-' '/+' primero.

Windows PowerShell:
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8='))

Python:
import base64
base64.b64decode('SGVsbG8=').decode('utf-8') # Hello
base64.urlsafe_b64decode(s + '===').decode() # URL-safe con padding auto


Node.js:
Buffer.from('SGVsbG8=', 'base64').toString('utf-8')

DevTools del navegador:
atob('SGVsbG8=') — funciona en cualquier consola. Para cadenas UTF-8 envuelve con new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0))).

PHP: base64_decode('SGVsbG8=')
Ruby: Base64.decode64('SGVsbG8=')
Go: base64.StdEncoding.DecodeString("SGVsbG8=")

¿Es seguro este decodificador Base64 para decodificar tokens y credenciales sensibles?

Sí — este decodificador es más seguro que las herramientas del lado del servidor porque nada sale de tu navegador. La decodificación ocurre enteramente en JavaScript en tu dispositivo mediante las APIs nativas atob() y TextDecoder. No hay llamada de red, subida, log ni analítica sobre el contenido de la entrada. Puedes verificarlo abriendo la pestaña Red de las DevTools del navegador mientras decodificas — verás cero solicitudes.

Dicho esto, Base64 no es cifrado — es solo codificación. Cualquiera con la cadena Base64 puede decodificarla. Así que aunque esta herramienta sea segura, deberías:
• Nunca compartir capturas de JWT decodificados que no hayan expirado.
• Rotar credenciales que se filtren en cualquier lugar (logs, capturas, chat compartido).
• Tratar OAuth state, tokens CSRF e IDs de sesión decodificados como secretos hasta la invalidación.

Para entornos corporativos/regulados donde incluso la cadena Base64 es sensible, puedes guardar esta página offline (Cmd/Ctrl + S) — funciona totalmente aislada tras una carga, ya que la lógica de decodificación es JavaScript puro.

¿Cómo decodifico una Data URI Base64 como 'data:image/png;base64,iVBORw0KGgo...'?

Una Data URI sigue la sintaxis data:[<mediatype>][;base64],<data>. Para decodificar solo el payload:

1. Encuentra la coma. Todo antes son metadatos (data:image/png;base64), todo después es el archivo codificado en Base64.
2. Copia solo la parte después de la coma a este decodificador.
3. Para contenido binario (PNG, JPG, PDF), la salida decodificada será bytes crudos — la renderización texto muestra mojibake. Es esperado.
4. Para ver una imagen Data URI, pega la totalidad de la URI data:... en la barra de direcciones del navegador — el navegador la decodifica y renderiza directamente.
5. Para guardar el archivo de imagen, usa nuestra herramienta dedicada Base64 a imagen, que maneja la Data URI completa y descarga un PNG/JPG/WebP.

Las Data URI se encuentran comúnmente en: reglas CSS background-image, iconos SVG inline, imágenes de firma de email, adjuntos PDF codificados en respuestas API JSON y paquetes de iconos de extensiones Electron/VS Code.

¿Cuál es la diferencia entre codificación y decodificación Base64?

La codificación toma datos binarios o texto arbitrarios y produce una cadena ASCII usando solo caracteres imprimibles — seguro para transporte en canales solo-texto (email, URLs, JSON). La decodificación lo invierte: una cadena Base64 ASCII vuelve a los bytes originales.

Propiedades clave:
Ida y vuelta sin pérdida: decode(encode(x)) === x para cualquier entrada de bytes. Ningún dato se pierde.
No es cifrado: Base64 ofrece cero secreto. Cualquiera puede decodificarlo.
Sobrecarga de tamaño: la salida codificada es ~33 % mayor que la entrada (4 bytes de salida por 3 de entrada).
Casos de uso: tokens JWT, adjuntos email MIME, cabeceras HTTP Basic Auth, códigos OAuth, URLs prefirmadas S3, imágenes inline en HTML/CSS.

Esta página está dedicada a decodificar. Si necesitas ir en la otra dirección (texto/archivo → Base64), usa nuestro codificador Base64 en la página principal, o nuestro conversor imagen a Base64 para archivos de imagen.

¿Puedo decodificar cadenas Base64 muy grandes o archivos codificados en Base64?

Sí, dentro de los límites de memoria del navegador. El decodificador acepta longitud de entrada ilimitada — hemos probado con cadenas Base64 de 50 MB (~37 MB decodificados) en portátiles modernos. Rendimiento:

< 100 KB: instantáneo, sin retardo UI.
1 – 10 MB: la decodificación toma ~50-500 ms dependiendo de CPU.
10 – 100 MB: el navegador puede congelarse brevemente (2-10 s) ya que atob es síncrono. Deshabilita auto-decode primero y pulsa [DECODE] manualmente.
> 100 MB: alcanzarás los límites de memoria del navegador. Para archivos Base64 de escala gigabyte, usa una herramienta de línea de comandos (base64 -d).

Si el contenido decodificado es un archivo binario (PNG, PDF, ZIP), el área de salida de texto mostrará mojibake. Para descargar los bytes decodificados como archivo, usa nuestra herramienta Base64 a imagen (maneja imágenes) o el enfoque de línea de comandos: echo '<base64>' | base64 -d > output.bin.

¿Funciona este decodificador Base64 offline?

Sí. Tras cargar la página una vez, toda la decodificación ocurre en el lado del cliente en JavaScript — no se necesita red. Para hacerlo totalmente offline:

1. Guardar la página: pulsa Ctrl+S (Windows/Linux) o Cmd+S (macOS) y guarda como "Página web, completa". El decodificador funciona desde el HTML guardado.
2. Instalar como PWA (si se admite): algunos navegadores ofrecen "Instalar esta app" para base64.sh — te da un lanzador con acceso offline.
3. Usar en DevTools: la función nativa atob() funciona en cualquier consola del navegador sin esta página. Para una decodificación rápida: atob('SGVsbG8=').

La operación offline es útil para: investigación de seguridad aislada, laboratorios de pentesting, entornos corporativos con reglas estrictas de salida de datos, y vuelos/trenes sin internet.

// RELATED TOOLS

// OTHER LANGUAGES