Codificador de Archivos Base64

Codifica cualquier archivo a Base64: PDF, ZIP, imágenes y más

Suelta cualquier archivo aquí o haz clic para cargar

Cualquier tipo de archivo: PDF, ZIP, imágenes, archivos binarios

¿Qué es la Codificación de Archivos Base64?

La codificación de archivos Base64 convierte archivos binarios (PDFs, ZIPs, imágenes, ejecutables, fuentes, audio) en texto ASCII plano utilizando el alfabeto definido en RFC 4648. Cada tres bytes de entrada binaria se convierten en cuatro caracteres Base64, produciendo una representación de texto que puede viajar a través de canales diseñados exclusivamente para texto: cargas útiles de API JSON, documentos XML, cuerpos de correo electrónico, atributos HTML y variables de entorno.

A diferencia de la codificación de texto a Base64 (que opera en cadenas), la codificación de archivo a Base64 lee el flujo de bytes sin procesar de cualquier archivo independientemente de su formato. Los encabezados binarios de un PDF, los bloques comprimidos de un ZIP y los datos de píxeles de un PNG se tratan idénticamente: como una secuencia de octetos para ser recodificados. El resultado siempre es ASCII válido, seguro para incrustar en cualquier lugar que acepte caracteres imprimibles.

La compensación es el tamaño: la salida Base64 es aproximadamente 33% más grande que el binario original. Para un PDF de 1 MB, eso significa aproximadamente 1,33 MB de texto Base64. Esta sobrecarga es inherente a la codificación y ninguna implementación puede evitarla. A pesar de esto, la codificación de archivos Base64 sigue siendo el método estándar para incrustar datos binarios en formatos de solo texto, especificado en MIME (RFC 2045), URIs de datos (RFC 2397) y JSON Web Tokens (RFC 7519).

¿Por Qué Usar Este Codificador de Archivos Base64?

Esta herramienta codifica archivos a Base64 directamente en tu navegador usando la API de FileReader. Ningún archivo se carga a un servidor: toda la conversión ocurre en el cliente en JavaScript.

🛡
Procesamiento Privado
Tu archivo nunca abandona tu dispositivo. La API FileReader lee el archivo en memoria localmente, y la salida Base64 se genera completamente en el navegador. No se realiza ninguna solicitud de red.
Arrastrar y Soltar Instantáneo
Suelta cualquier archivo en la herramienta y ve la salida Base64 inmediatamente. Sin esperas de carga, sin barras de progreso, sin límites de tamaño de archivo impuestos por un servidor.
📁
Cualquier Formato de Archivo
Codifica PDFs, ZIPs, imágenes, fuentes, archivos de audio, módulos WebAssembly u otro formato binario. El codificador trata todos los archivos como flujos de bytes sin procesar: el formato no importa.
🔒
Sin Cuenta Requerida
Usa la herramienta inmediatamente sin registrarte, iniciar sesión o aceptar cookies. La salida está lista para copiar o descargar como un archivo .b64.txt con un solo clic.

Casos de Uso de Codificación de Archivos Base64

Desarrollador Frontend
Incrusta iconos, fuentes o SVGs pequeños directamente en CSS o HTML como URIs de datos para eliminar solicitudes HTTP adicionales. Un icono de 2 KB en línea como Base64 ahorra un viaje de red que agregaría 50-200 ms de latencia.
Ingeniero Backend
Incluye adjuntos de archivo en cargas útiles de API JSON cuando el protocolo de transporte no admite cargas multiparte. Codifica PDFs, informes o documentos firmados antes de enviarlos como campos de cadena en respuestas REST o GraphQL.
DevOps / Infraestructura
Almacena archivos de configuración binarios (certificados TLS, claves SSH, archivos de licencia) como cadenas Base64 en variables de entorno, Secretos de Kubernetes o tfvars de Terraform donde no se permiten valores binarios sin procesar.
QA / Ingeniero de Pruebas
Genera accesorios de archivo Base64 para pruebas automatizadas que verifiquen puntos finales de carga, manejo de adjuntos de correo electrónico o canalizaciones de procesamiento de documentos sin administrar archivos de prueba binarios en control de versiones.
Ingeniero de Datos
Serializa blobs binarios (metadatos de Parquet, esquemas de Protobuf, pequeños activos binarios) a Base64 para almacenamiento en catálogos de datos basados en JSON, tiendas de configuración o scripts de migración.
Estudiante / Aprendiz
Observa cómo los archivos binarios se convierten en texto codificando archivos pequeños e inspeccionando la salida. Compara la longitud de Base64 con el tamaño del archivo original para verificar la sobrecarga del 33% descrita en RFC 4648.

Sobrecarga de Tamaño de Archivo Base64

La codificación Base64 aumenta el tamaño de datos exactamente en una tercera parte. Cada 3 bytes de entrada producen 4 caracteres de salida (cada uno representando 6 bits). Los caracteres de relleno (=) se agregan cuando la longitud de entrada no es múltiplo de 3. La tabla a continuación muestra la relación entre el tamaño de archivo original y el tamaño de salida codificado.

Tamaño de ArchivoBytes Sin ProcesarBytes Base64Sobrecarga
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Referencia de URI de Datos y Tipo MIME

Un URI de datos incrusta contenido de archivo directamente en HTML, CSS o JavaScript utilizando el formato data:[tipo MIME];base64,[datos codificados]. El tipo MIME le dice al navegador cómo interpretar los bytes decodificados. A continuación se encuentran extensiones de archivo comunes, sus tipos MIME y el prefijo de URI de datos correspondiente.

ExtensiónTipo MIMEPrefijo de URI de Datos
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Ejemplos de Código

Estos ejemplos ejecutables muestran cómo leer un archivo binario y codificarlo a Base64 en JavaScript, Python, Node.js, bash y Go. Cada fragmento produce Base64 estándar (RFC 4648 Sección 4) con relleno.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

Preguntas Frecuentes

¿Cuál es el tamaño máximo de archivo que puedo codificar a Base64?
Esta herramienta se ejecuta completamente en tu navegador, por lo que el límite depende de la memoria disponible. Los navegadores modernos manejan archivos de hasta 50-100 MB sin problemas. Para archivos más grandes, usa una herramienta de línea de comandos como base64 (macOS/Linux) o el módulo base64 de Python, que procesa el archivo en fragmentos y no carga toda la salida en memoria a la vez.
¿Cuánto más grande es la salida Base64 en comparación con el archivo original?
La salida Base64 siempre es aproximadamente 33,3% más grande que la entrada. Específicamente, la fórmula es ceil(n / 3) * 4, donde n es el número de bytes de entrada. Un archivo de 1 MB produce aproximadamente 1,33 MB de texto Base64. Esta sobrecarga es inherente a la codificación y no puede reducirse.
¿Puedo codificar un archivo a Base64 y usarlo como URI de datos?
Sí. Antepone el prefijo de tipo MIME a la cadena Base64: data:application/pdf;base64, seguido del contenido codificado. Los navegadores decodificarán y renderizarán el URI de datos como si fuera un archivo regular. Los URIs de datos funcionan en src de img, href de link, url() de CSS y atributos de descarga de anclaje.
¿Es la codificación de archivos Base64 lo mismo que el cifrado?
No. Base64 es una codificación, no cifrado. Transforma datos binarios en una representación de texto que es trivialmente reversible: cualquiera con un decodificador Base64 puede recuperar el archivo original. Base64 no proporciona confidencialidad, integridad ni autenticación. Si necesitas proteger el contenido del archivo, cifra el archivo primero (por ejemplo con AES-256-GCM), luego codifica el texto cifrado a Base64 para el transporte.
¿Por qué mi cadena Base64 termina con uno o dos caracteres =?
Los caracteres = son relleno. Base64 procesa la entrada en grupos de 3 bytes, produciendo 4 caracteres de salida por grupo. Cuando el tamaño del archivo no es múltiplo de 3, se agregan uno o dos caracteres de relleno para que la longitud de salida sea siempre múltiplo de 4. Un = significa que el último grupo tenía 2 bytes; dos == significa que el último grupo tenía 1 byte.
¿Cómo codifico un archivo a Base64 desde la línea de comandos?
En macOS y Linux, usa el comando base64: base64 < file.pdf > file.b64.txt. En GNU/Linux, agrega -w 0 para suprimir el ajuste de línea. También puedes usar OpenSSL: openssl base64 -in file.pdf -out file.b64.txt. En Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
¿Cuándo debo usar codificación de archivos Base64 en lugar de multipart/form-data?
Usa Base64 cuando el transporte requiere un formato de solo texto: APIs JSON, XML-RPC, variables de entorno o Secretos de Kubernetes. Usa multipart/form-data cuando cargas archivos a través de formularios HTML o puntos finales REST que admiten flujos binarios. Multipart es más eficiente porque evita la sobrecarga de tamaño del 33%, pero requiere que el servidor analice límites multiparte.