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.
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.
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.
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 _.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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).
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.
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(...).
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.
Transforme estructuras JSON en interfaces o alias de tipo TypeScript limpios y fuertemente tipados con inferencia automática de objetos anidados.
Infiera y genere esquemas Zod de TypeScript, definiciones de tipos y reglas de validación anidadas a partir de JSON en bruto.
Convierta estructuras JSON en definiciones TypeBox Type.Object de alto rendimiento para Fastify, Ajv y validación de tipos en TypeScript.
Transforme datos JSON en definiciones de esquema Valibot ligeras y modulares con v.object, v.string, v.number y validadores de arrays.
Convierta datos JSON en modelos de Python Pydantic v2 BaseModel, TypedDict o @dataclass listos para producción con anotaciones de tipo y alias automáticos.
Transforme objetos JSON en estructuras Go (Golang) idiomáticas con inferencia de tipos, desacoplamiento anidado y etiquetas de estructura configurables.