Codificador & Decodificador Base64

Codificador & Decodificador Base64

Codifica y decodifica cadenas Base64 o archivos binarios al instante. Compatible con base64url seguro para URLs, UTF-8 unicode, ajuste MIME, Data URLs y autorreparación.

Seleccionar preset
Visualizador de flujo binario: 3 octetos (24 bits) a 4 sextetos (RFC 4648)
Tríada de 3 bytes (24 bits) #1 / 7RFC 4648 OK
Octetos de 8 bits (3 bytes = 24 bits)A (0x41)01000001l (0x6C)01101100a (0x61)01100001010000 • 010110 • 110001 • 100001Sextetos Base64 (6 bits)[010000]#16Q[010110]#22W[110001]#49x[100001]#33h
Flujo de entrada
Generar Data URL con 1 clic:
Tamaño de entrada19 caracteres
Tamaño de salida28 bytes
Expansión de tamaño+47.4%
Modo activoCodificar
Variante activaEstándar (RFC 4648)
Integridad sintácticaCorrecto
Referencia técnica y guía de arquitectura

Codificador & Decodificador Base64 — Guía de referencia

Codifique y decodifique cadenas Base64 o archivos binarios al instante. Compatible con base64url (URL-safe), Unicode UTF-8, saltos de línea MIME, Data URLs y corrección de sintaxis en tiempo real.

Codificador & Decodificador Base64 — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos
Codificador & Decodificador Base64 — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos

Parámetros clave y controles

Tabla del Alfabeto Base64Conjunto de Caracteres

Tabla de asignación de 64 caracteres para valores de 6 bits (del 0 al 63). El estándar RFC 4648 utiliza [A-Za-z0-9+/], mientras que la variante URL-safe sustituye + y / por - y _.

Por defecto: Estándar RFC 4648
Carácter de Relleno (=)Cadena de texto

Carácter de sufijo añadido cuando el flujo binario de entrada no es múltiplo de 24 bits. Añade == cuando sobra 1 byte, o = cuando sobran 2 bytes. Se omite en base64url.

Por defecto: Habilitado (=)
Límite de Salto de LíneaEntero / Preajuste

Número de columnas tras el cual se inserta un salto de línea CRLF o LF. MIME utiliza 76 caracteres por línea, PEM emplea 64 caracteres y las API web modernas suelen utilizar Ninguno.

Por defecto: Ninguno (Continuo)
Codificación de Caracteres de TextoEnum

Estándar de serialización en bytes para texto plano. UTF-8 admite todos los caracteres Unicode internacionales y emojis. ISO-8859-1 (Latin-1) y ASCII se restringen a rangos de un solo byte.

Por defecto: UTF-8
Esquema Data URLFormato de Cadena

Formato URI con prefijo MIME (data:[<mediatype>][;base64],<data>) que permite incrustar imágenes, fuentes tipográficas, audios y documentos directamente en archivos HTML y CSS.

Por defecto: Detección automática

Consejos profesionales y mejores prácticas

Evite la Excepción Unicode de btoa() en JavaScript

La función estándar del navegador window.btoa() lanza un InvalidCharacterError al procesar cualquier carácter fuera del rango Latin-1 (punto de código > 255). Para codificar de forma segura texto UTF-8 moderno con emojis o caracteres multilingües, convierta la cadena a un Uint8Array mediante new TextEncoder().encode(str) antes de transformar el flujo de bytes a Base64.

Prevenga Parámetros de URL Rotos con Base64url

El estándar Base64 incluye los caracteres más (+) y barra diagonal (/). Al transmitirse en parámetros de consulta de una URL HTTP, los servidores web suelen decodificar el signo + como un espacio en blanco, corrompiendo la carga útil. Utilice siempre la especificación Base64url segura para URLs (RFC 4648 §5), que sustituye + por - y / por _, además de eliminar el relleno de signos = finales.

Evalúe la Sobrecarga del 33% en Ancho de Banda con Data URI

Incrustar recursos como Data URLs suprime peticiones HTTP adicionales, pero Base64 incrementa el tamaño del archivo binario exactamente un 33,33% (4 caracteres por cada 3 bytes) e impide el almacenamiento independiente en la caché del navegador. Reserve los Data URLs en línea para iconos diminutos y archivos SVG críticos de menos de 4 KB; mantenga los recursos multimedia pesados como archivos externos en caché mediante HTTP/2 o HTTP/3.

Automatice el Cálculo de Relleno para Base64 Truncado

Si una API o registro de depuración trunca los signos de igual finales, determine el relleno necesario mediante aritmética modular: calcule resto = longitudCadena % 4. Si el resto es 2, añada ==. Si el resto es 3, añada =. Si el resto es 1, la cadena es inválida porque 6 bits no pueden representar un octeto completo de 8 bits.

Problemas comunes y soluciones

⚠️La cadena a decodificar no tiene una codificación correcta (DOMException / Error de atob)

La cadena de entrada contiene caracteres ajenos al alfabeto Base64 (como espacios, saltos de línea o caracteres con codificación porcentual de URL como %2B). Active la opción de Limpieza Automática para eliminar espacios en blanco y normalizar guiones y guiones bajos, o compruebe si los datos fueron codificados con la variante base64url (URL-safe).

⚠️El texto decodificado muestra caracteres corruptos o mojibake (ej. é, ü o caracteres de reemplazo )

Se debe a una discrepancia en la codificación de caracteres. El texto original se generó a partir de secuencias multibyte en UTF-8, pero el decodificador las está interpretando como ISO-8859-1 (Latin-1), o viceversa. Cambie el selector de Codificación de Caracteres de Texto de Latin-1/ASCII a UTF-8 para recuperar la reconstrucción correcta de caracteres multibyte.

⚠️Error de longitud Base64 inválida: longitud de cadena módulo 4 igual a 1

Base64 agrupa bloques de 6 bits en caracteres; una longitud codificada con un resto de 1 mod 4 indica que solo hay 6 bits disponibles, lo cual es insuficiente para reconstruir siquiera un único byte de 8 bits. Esto confirma que la cadena fue truncada durante la transmisión de red o al copiar y pegar. Solicite o recupere la carga útil completa desde el origen.

Preguntas frecuentes (FAQ)

¿Cómo calcula la codificación Base64 el incremento de tamaño del 33%?▼

La codificación Base64 transforma cada 3 bytes (24 bits) de entrada binaria en 4 caracteres ASCII (cada uno representando 6 bits). Dado que cada carácter resultante se almacena y transmite por HTTP como un byte ASCII de 8 bits, 24 bits de entrada se convierten en 32 bits de salida. Esto establece una proporción matemática constante de 4/3, lo que genera exactamente un aumento del 33,33% en el tamaño de los datos antes de considerar saltos de línea y caracteres de relleno.

¿En qué se diferencia Base64url de la codificación Base64 estándar?▼

Base64 estándar (RFC 4648 §4) emplea + y / como sus caracteres número 62 y 63, y utiliza = para el relleno. En cadenas de consulta de URLs y nombres de archivo, el signo + se interpreta como un espacio y la barra / actúa como delimitador de ruta. La variante Base64url (RFC 4648 §5) reemplaza el signo + por un guion (-) y la barra / por un guion bajo (_), prescindiendo habitualmente del relleno de signos = finales para garantizar transmisiones seguras en URLs y sistemas de archivos sin necesidad de codificación porcentual (URL-encoding).

¿Por qué window.btoa() en JavaScript lanza un error InvalidCharacterError con caracteres Unicode?▼

La función nativa del navegador btoa() fue concebida para cadenas binarias donde el punto de código de cada carácter debe encajar en un único byte de 8 bits (del 0 al 255). Los caracteres Unicode modernos (como emojis, tildes o escrituras asiáticas) ocupan entre 2 y 4 bytes en UTF-8. Pasar un punto de código superior a 255 incumple la especificación de btoa(). Las aplicaciones web modernas deben serializar primero la cadena a bytes UTF-8 con TextEncoder antes de realizar la conversión a Base64.

¿Cómo convertir una cadena Base64 en una imagen Data URL lista para HTML y CSS?▼

Para mostrar una imagen Base64 en HTML o CSS sin alojar un archivo externo, anteponga el prefijo del tipo MIME y el identificador base64: data:image/[formato];base64,[datos]. Por ejemplo, una imagen PNG utiliza data:image/png;base64,iVBORw0KGgo... Puede incrustar esta cadena completa directamente en el atributo src de una etiqueta HTML <img> o dentro de la propiedad CSS background-image: url(...).

¿Cuándo debe omitirse el relleno Base64 (=) en tokens web y APIs?▼

El carácter de relleno (=) en Base64 debe omitirse al generar tokens web JSON (JWT), tokens de acceso OAuth y slugs de URL regidos por las especificaciones RFC 7515 (JWS) y RFC 4648 §5. Dado que el analizador conoce la longitud de la cadena, los bits omitidos se deducen matemáticamente (string.length % 4), lo que hace innecesario el relleno y ahorra espacio en las URLs.

Herramientas y utilidades relacionadas

Todas las herramientas →