Decodificación Base64

Entrada Base64
0 caracteres

Decodifica cadenas Base64 a texto original online gratis. Soporta múltiples conjuntos de caracteres (UTF-8, ASCII, ISO-8859-1), ideal para depurar APIs, revisar logs y recuperar configuraciones.

Relacionado

¿Qué es la decodificación Base64?

La decodificación Base64 es el proceso inverso de la codificación Base64: convierte una cadena ASCII imprimible (compuesta por A-Z, a-z, 0-9, +, /, y = como relleno) de vuelta a sus bytes originales, y luego a texto legible según el conjunto de caracteres seleccionado. La especificación Base64 fue definida originalmente en RFC 4648 (actualmente el estándar de facto) y anteriormente en RFC 2045 (MIME). Cada 4 caracteres Base64 representan 3 bytes de datos originales, por lo que una cadena Base64 de longitud N puede restaurar aproximadamente 3N/4 bytes de datos.

**Base64 no es cifrado**, es solo conversión de formato. La decodificación es determinista y reversible por cualquiera, lo que significa que si los datos originales son sensibles (contraseñas, información personal, claves API), Base64 no proporciona ninguna protección. Si necesitas proteger datos, usa un esquema de cifrado real como AES-256, RSA, o un sistema KMS. En el proceso de depuración, Base64 se usa comúnmente como una herramienta de lectura rápida, no como una medida de seguridad.

**Soporte para múltiples conjuntos de caracteres** es clave al decodificar. Si los datos originales están en UTF-8 (incluyendo chino, japonés, coreano, emoji y otros caracteres multibyte), la decodificación debe usar el modo UTF-8. Si solo procesas datos ASCII puros en inglés, puedes usar el modo ASCII para mayor velocidad. Para ciertos datos heredados en Europa Occidental (como sistemas Linux antiguos, archivos .properties de Java), es posible que necesites usar el modo ISO-8859-1 (Latin-1). Elegir el conjunto de caracteres incorrecto provocará caracteres ilegibles o truncamiento.

**Decodificación URL-Safe** maneja variantes JWT, OAuth, PKCE. Estos escenarios reemplazan los caracteres +/ con -_, y generalmente omiten el padding =. La herramienta detecta y convierte automáticamente el formato URL-Safe antes de decodificar, eliminando las restricciones de formato que normalmente requerirían reemplazo manual de caracteres. Esto es especialmente importante al decodificar los segmentos header y payload de tokens JWT, porque los segmentos JWT están en formato Base64URL por defecto.

**Procesamiento 100% local en el navegador**, los datos no se envían a ningún servidor. Puedes abrir el panel de red de las herramientas de desarrollador (DevTools) para verificar que no se realiza ninguna solicitud externa durante todo el proceso. Adecuado para decodificar contenido que contiene datos sensibles de producción (tokens, datos personales, claves internas) sin riesgo de filtraciones al subirlos a servicios de terceros.

Casos de uso

  • Decodificar campos Base64 de respuestas de API para ver el contenido original
  • Restaurar datos codificados en Base64 en archivos de log
  • Recuperar valores codificados en Base64 en archivos de configuración
  • Investigar causas de errores de decodificación Base64 (falta de padding, caracteres no válidos, etc.)
  • Decodificar los segmentos header y payload de un JWT para ver el contenido del token
  • Decodificar cadenas Base64 en Basic Authentication (Authorization header) para ver usuario y contraseña

Cómo Usar

  1. Pega la cadena Base64 que necesitas decodificar
  2. Selecciona el conjunto de caracteres (UTF-8/ASCII/ISO-8859-1) o activa el modo URL-Safe
  3. La herramienta decodifica Base64 automáticamente y muestra el resultado
  4. Copia el resultado decodificado para depuración o documentación posterior

Características

  • Conversión bidireccional en tiempo real: decodifica al escribir, con debounce de 300 ms, sin necesidad de pulsar manualmente
  • Soporte para múltiples conjuntos de caracteres: UTF-8, ASCII, ISO-8859-1, cubriendo escenarios en chino, inglés y multilingües
  • Compatibilidad con Base64 URL-Safe: maneja automáticamente el reemplazo de caracteres - y _, admite formato sin padding
  • Detección de caracteres no válidos: muestra la posición exacta del error al fallar la decodificación, para localizar rápidamente problemas de formato
  • Copiar y descargar con un clic: copia el resultado decodificado al portapapeles o descárgalo como archivo .txt
  • Sugerencias inteligentes de conjuntos de caracteres: detecta automáticamente caracteres multibyte y recomienda el conjunto de caracteres apropiado
  • Procesamiento 100% local: los datos no se suben a ningún servidor, ideal para decodificar contenido que contiene información sensible de producción

Ejemplos de Código

Decodificación Base64 en JavaScript (compatible con UTF-8, incluyendo caracteres chinos y multibyte)

// Decodificación (compatible con UTF-8, incluyendo caracteres chinos y multibyte)
function b64Decode(str) {
  return decodeURIComponent(escape(atob(str)));
}

// Decodificación URL-Safe (usada en JWT / OAuth)
function b64UrlDecode(str) {
  const normalized = str.replace(/-/g, '+').replace(/_/g, '/');
  const padded = normalized + '='.repeat((4 - (normalized.length % 4)) % 4);
  return decodeURIComponent(escape(atob(padded)));
}

console.log(b64Decode('SGVsbG8g5LiW55WM')); // Hello 世界
console.log(b64UrlDecode('SGVsbG8g5LiW55WM')); // Hello 世界

Decodificación Base64 en Python

import base64

# Decodificación Standard (UTF-8)
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello 世界

# Decodificación URL-Safe (usada en JWT / OAuth)
url_safe_no_pad = 'SGVsbG8g5LiW55WM'
# Restaurar padding (los JWT suelen omitir el padding =)
padded = url_safe_no_pad + '=' * ((4 - len(url_safe_no_pad) % 4) % 4)
decoded_url_safe = base64.urlsafe_b64decode(padded).decode('utf-8')
print(decoded_url_safe)  # Hello 世界

# Decodificar payload JWT
jwt_token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
payload_b64 = jwt_token.split('.')[1]
payload_padded = payload_b64 + '=' * ((4 - len(payload_b64) % 4) % 4)
payload = base64.urlsafe_b64decode(payload_padded).decode('utf-8')
print(payload)  # {"sub": "1234567890", "name": "John Doe"}

Decodificación Base64 en Java

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64DecodeExample {
    public static void main(String[] args) {
        String encoded = "SGVsbG8g5LiW55WM";

        // Decodificación Standard
        String decoded = new String(
            Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
        System.out.println(decoded); // Hello 世界

        // Decodificación URL-Safe (JWT / URL)
        String urlSafe = "SGVsbG8g5LiW55WM";
        String decodedUrlSafe = new String(
            Base64.getUrlDecoder().decode(urlSafe), StandardCharsets.UTF_8);
        System.out.println(decodedUrlSafe);

        // Decodificar el payload de un JWT
        String jwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0";
        String payloadB64 = jwt.split("\\.")[1];
        String padded = payloadB64 + "=".repeat((4 - payloadB64.length() % 4) % 4);
        String payload = new String(
            Base64.getUrlDecoder().decode(padded), StandardCharsets.UTF_8);
        System.out.println(payload);
    }
}

Preguntas Frecuentes

¿Por qué aparece InvalidCharacterError al decodificar Base64?

Las causas comunes incluyen: caracteres no válidos mezclados (espacios, saltos de línea, comillas), número incorrecto de caracteres de padding (=), o uso de la variante URL-Safe (-_ reemplazando a +/). Se recomienda usar primero la herramienta de limpieza Base64 para preprocesar antes de decodificar.

¿Qué hacer si aparecen caracteres ilegibles después de decodificar?

Probablemente se seleccionó un conjunto de caracteres incorrecto. Si el texto original está en chino, selecciona el conjunto UTF-8; si es inglés puro o datos binarios, prueba ASCII o ISO-8859-1.

¿Cuál es la diferencia entre decodificar Base64 URL-Safe y Base64 normal?

Base64 URL-Safe usa - y _ en lugar de + y /, y generalmente omite el padding = al final. Antes de decodificar, es necesario reemplazar -_ por +/, y completar el padding correcto.

¿Es Base64 adecuado para la depuración de APIs?

Muy adecuado. Muchas respuestas de API, tokens OAuth, parámetros de callback y logs de middleware encapsulan el contenido en Base64; al decodificar puedes ver directamente los datos originales.

¿Cómo decodificar el header y payload de un JWT?

JWT usa codificación Base64URL (variante URL-Safe). Selecciona el modo URL-Safe, pega el primer segmento (header) o el segundo segmento (payload) del JWT para decodificarlo. El tercer segmento es la firma, que no debe decodificarse ni verificarse aquí.

¿La decodificación Base64 admite caracteres chinos?

Sí, pero debe usar el conjunto de caracteres UTF-8. Las API nativas btoa y atob del navegador solo admiten Latin-1; caracteres chinos ocupan 3 bytes en UTF-8 y pasarlos directamente causará un error. Se recomienda usar una herramienta que admita UTF-8 para decodificar, o usar lógica de transcodificación que combine encodeURIComponent / decodeURIComponent.

¿Es seguro decodificar datos confidenciales?

La decodificación con esta herramienta es 100% local, los datos no se envían a ningún servidor, así que es seguro procesar información sensible de producción. Pero recuerda: Base64 no es cifrado; no uses Base64 para proteger contraseñas o claves; usa algoritmos de cifrado reales como AES-256.

¿Qué hago si la cadena Base64 no tiene padding (=)?

La longitud de la cadena Base64 debe ser múltiplo de 4. Si falta padding, completa con = al final hasta que la longitud sea múltiplo de 4; los decodificadores estrictos rechazarán cadenas con longitud incorrecta. La herramienta maneja automáticamente el problema de padding.

Herramienta de Padding Base64

¿Cuál es la diferencia entre decodificar con UTF-8 y con ASCII?

ASCII solo admite caracteres ingleses (1 byte por carácter) y es adecuado para texto inglés puro. UTF-8 admite todos los caracteres del mundo (1-4 bytes) y es adecuado para contenido que contiene chino, japonés, coreano o emoji. Si los datos originales están en UTF-8 pero decodificas con ASCII, los caracteres multibyte se decodificarán incorrectamente.

¿Puede decodificar archivos binarios, como imágenes?

Puede decodificar, pero esta herramienta está orientada a texto (muestra el resultado como cadena). Si necesitas restaurar una imagen, se recomienda usar primero Base64 → texto y luego guardarlo como binario. Para restauración de archivos binarios grandes, se recomienda usar herramientas de línea de comandos (xxd, base64 en Linux).

Solución de problemas

Glosario

RFC 4648
Estándar oficial de codificación Base16/Base32/Base64 publicado por el IETF. Define dos alfabetos Base64: estándar y URL-Safe, así como reglas de relleno, saltos de línea y manejo de caracteres no alfabéticos. Al decodificar, es necesario seguir estrictamente este estándar para garantizar la corrección de los datos restaurados.Herramienta URL-Safe Base64Herramienta de Padding Base64
Base64URL (URL-Safe Base64)
Variante segura para URL definida en RFC 4648 §5. Al decodificar, primero se reemplazan los caracteres -_ por +/, y luego se completa el padding = faltante antes de la decodificación estándar. Se usa ampliamente en tokens JWT, OAuth PKCE, parámetros URL y nombres de archivo.Herramienta JWT
Padding (relleno)
Carácter = añadido al final de una cadena Base64 para asegurar que la longitud sea múltiplo de 4. La decodificación normalmente requiere completar el padding faltante; de lo contrario, los algoritmos de decodificación estrictos lanzarán errores. En tokens JWT y OAuth PKCE, el padding generalmente se omite y debe añadirse antes de decodificar.Herramienta de Padding Base64
Conjunto de caracteres (Charset)
Método para mapear bytes a caracteres. Al decodificar Base64, si los datos originales son multibyte (como UTF-8), se debe especificar el conjunto de caracteres correcto; de lo contrario, aparecerán caracteres ilegibles. Los conjuntos de caracteres comunes incluyen UTF-8 (estándar global), ASCII (solo inglés), ISO-8859-1 (Latin-1, Europa Occidental).
InvalidCharacterError
Error común al decodificar Base64. Las causas típicas incluyen: caracteres no alfabéticos mezclados (espacios, saltos de línea, comillas), relleno = incorrecto, o uso de la variante URL-Safe sin procesamiento previo. La herramienta localiza automáticamente la posición del error para facilitar el diagnóstico rápido.
HTTP Basic Authentication
Método de autenticación en el protocolo HTTP. Las credenciales username:password se codifican en Base64 y se transmiten en el encabezado Authorization. Al depurar APIs, los desarrolladores suelen decodificar manualmente este encabezado para ver el nombre de usuario y la contraseña reales.Constructor de encabezados Auth
Data URI Scheme
Formato URI que permite incrustar datos directamente en una URL: data:[<mediatype>][;base64],<data>. A menudo contiene largas cadenas Base64; al depurar interfaces y renders, los desarrolladores necesitan decodificar estos segmentos para ver el contenido original (generalmente imágenes, iconos pequeños).Herramienta Data URI

Tabla de comparación de errores comunes al decodificar Base64

SíntomaCausa comúnSolución
InvalidCharacterErrorCaracteres no alfabéticos mezclados (espacios, saltos de línea, comillas)Limpiar caracteres extraños, eliminar saltos de línea o usar la herramienta de limpieza
Longitud de cadena incorrectaFalta de relleno = o relleno excesivoAsegurarse de que la longitud sea múltiplo de 4; completar o eliminar caracteres =
Decodificación fallida de URL-SafeConfusión entre las variantes estándar y URL-SafeActivar el modo URL-Safe, convertir automáticamente - a + y _ a /
Caracteres ilegibles / reemplazosConjunto de caracteres seleccionado incorrectamenteReintentar con UTF-8/ASCII/ISO-8859-1
Resultado vacíoLa cadena contiene solo relleno o caracteres no válidosConfirmar que se trata de una cadena Base64 válida, no de texto plano u otra codificación
JSON no analizableEl contenido decodificado no es un JSON válidoConfirmar que el contenido decodificado está en formato JSON; verificar caracteres escapados y comillas

Tabla comparativa de conjuntos de caracteres al decodificar Base64

Conjunto de caracteresBytes por carácterCoberturaEscenarios aplicables
UTF-81-4 bytesCobertura global, incluyendo chino, japonés, coreano, emojiTexto en idiomas múltiples, datos JSON, registros API, contenido web moderno
ASCII1 byteSolo caracteres ingleses (0-127)Texto inglés puro, datos de configuración, identificadores, valores booleanos simples
ISO-8859-1 (Latin-1)1 byteCaracteres de Europa Occidental (alemán, francés, español, portugués)Sistemas heredados, archivos .properties de Java, procesamiento de datos antiguos de Europa Occidental
Binario (raw bytes)Sin conversión de texto, salida directa de bytesArchivos binarios pequeños (imágenes, archivos), datos que no son texto

Authoritative References