Decodificación Base64
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
- Pega la cadena Base64 que necesitas decodificar
- Selecciona el conjunto de caracteres (UTF-8/ASCII/ISO-8859-1) o activa el modo URL-Safe
- La herramienta decodifica Base64 automáticamente y muestra el resultado
- 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íntoma | Causa común | Solución |
|---|---|---|
| InvalidCharacterError | Caracteres 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 incorrecta | Falta de relleno = o relleno excesivo | Asegurarse de que la longitud sea múltiplo de 4; completar o eliminar caracteres = |
| Decodificación fallida de URL-Safe | Confusión entre las variantes estándar y URL-Safe | Activar el modo URL-Safe, convertir automáticamente - a + y _ a / |
| Caracteres ilegibles / reemplazos | Conjunto de caracteres seleccionado incorrectamente | Reintentar con UTF-8/ASCII/ISO-8859-1 |
| Resultado vacío | La cadena contiene solo relleno o caracteres no válidos | Confirmar que se trata de una cadena Base64 válida, no de texto plano u otra codificación |
| JSON no analizable | El contenido decodificado no es un JSON válido | Confirmar que el contenido decodificado está en formato JSON; verificar caracteres escapados y comillas |
Tabla comparativa de conjuntos de caracteres al decodificar Base64
| Conjunto de caracteres | Bytes por carácter | Cobertura | Escenarios aplicables |
|---|---|---|---|
UTF-8 | 1-4 bytes | Cobertura global, incluyendo chino, japonés, coreano, emoji | Texto en idiomas múltiples, datos JSON, registros API, contenido web moderno |
ASCII | 1 byte | Solo caracteres ingleses (0-127) | Texto inglés puro, datos de configuración, identificadores, valores booleanos simples |
ISO-8859-1 (Latin-1) | 1 byte | Caracteres 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 bytes | Archivos binarios pequeños (imágenes, archivos), datos que no son texto |
Authoritative References
- Comparación segura de cadenas
- Conversor Binario
- Cifrado César
- Código Morse
- Hexadecimal
- Video a Base64
- Base64 a Video
- Imagen a Base64
- Base64 a imagen
- Texto a Base64
- Base64 a texto
- Verificador de hash de archivo
- Archivo a Base64
- Base64 a archivo
- Audio a Base64
- Base64 a Audio
- Cifrar y descifrar AES
- Cifrado y descifrado DES
- Codificador y Decodificador Base32
- Codificar y decodificar Base58
- Codificación Base64
- Decodificación Base64
- Comparador de Base64
- Divisor Base64
- Fusionar Base64 multilínea
- Formato Base64
- Validador de Base64
- Codificación Base64 por lotes
- Decodificador Base64 por lotes
- Limpieza de Base64
- Manejo de padding Base64
- Estadísticas de longitud Base64
- Base64 a Hexadecimal
- Conversor Base64 DataURL
- Convertidor Base64-Hex
- Codificador Base85
- Generador y validador HMAC
- Derivación de Clave PBKDF2
- Hash MD5
- Hash SHA-256
- SHA1 Hash
- Hash SHA512
- Decodificador, Verificador y Generador JWT
- Codificador y decodificador de entidades HTML
- Escape de Unicode
- Codificación URL
- Base64 URL Safe
- MIME Base64
- Ofuscador de Java
- Ofuscador de JS
- Ofuscador de PHP
- Ofuscador de Python