Base64 es un esquema de codificación de binario a texto que representa datos binarios usando un conjunto de 64 caracteres ASCII imprimibles. Fue diseñado para transportar de forma segura datos binarios a través de sistemas que solo manejan texto — como el correo electrónico (MIME), encabezados HTTP y XML. El nombre "Base64" proviene de los 64 caracteres usados en el alfabeto de codificación.
La codificación funciona tomando tres bytes de entrada (24 bits) y dividiéndolos en cuatro grupos de 6 bits. Cada valor de 6 bits se asigna a un carácter en el alfabeto Base64. Si la longitud de la entrada no es múltiplo de tres, se añaden caracteres de relleno (=) para alcanzar un múltiplo de cuatro caracteres en la salida. El resultado es una cadena aproximadamente un 33% más grande que los datos originales, pero segura para transmitir como texto plano.
¿Por qué usar esta herramienta?
Este codificador maneja correctamente texto Unicode, soporta las variantes estándar y URL-safe, y codifica completamente en su navegador — sus datos nunca abandonan su máquina.
⚡
Codificación instantánea
Los resultados aparecen mientras escribe. No hay botones que hacer clic, no hay que esperar la respuesta de un servidor.
🔗
Alternancia URL-safe
Cambie entre codificación estándar (+/) y URL-safe (-_) con un solo clic. El relleno se elimina automáticamente para la variante URL-safe.
🔒
Completamente del lado del cliente
Toda la codificación ocurre localmente en su navegador usando la API nativa btoa y TextEncoder. Nada se envía a ningún servidor.
🎛️
Soporte Unicode
Maneja correctamente Unicode completo incluyendo emoji, caracteres CJK y cualquier texto UTF-8 usando encodeURIComponent antes de codificar.
Cómo usar este codificador Base64 en línea
Sin cuenta, sin instalación, sin subida de archivos — pega el texto y la salida codificada aparece al instante.
1
Pega o escribe tu texto
Haz clic en el campo de entrada y pega cualquier texto — cadenas simples, payloads JSON, claves de API, direcciones de correo o cualquier contenido UTF-8. La codificación se actualiza en tiempo real mientras escribes.
2
Elige tu variante
Selecciona Estándar (RFC 4648) para MIME, HTTP Basic Auth y uso general. Selecciona URL-segura para tokens JWT, parámetros de cadena de consulta, nombres de archivo y cualquier contexto donde + o / rompería el análisis de URL.
3
Copia la salida
Haz clic en Copiar para enviar la cadena Base64 a tu portapapeles con un clic. La salida está lista para pegarse directamente en tu código, archivo de configuración o solicitud de API.
4
Úsalo en tu aplicación
Pega la cadena codificada donde la necesites — cabeceras Authorization, URIs de datos, campos JSON, variables de entorno o secretos de Kubernetes. Para la salida URL-segura, el relleno ya está eliminado.
El alfabeto Base64
Base64 usa 64 caracteres: mayúsculas A–Z (valores 0–25), minúsculas a–z (26–51), dígitos 0–9 (52–61), y dos caracteres especiales para los valores 62 y 63. La variante estándar RFC 4648 usa + y /; la variante URL-safe los reemplaza con - y _ para evitar conflictos en URLs y nombres de archivo.
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
RFC 4648 estándar — evitar en URLs y nombres de archivo
-, _
62–63
Variante URL-safe (RFC 4648 §5) — segura en URLs y nombres de archivo
Base64 estándar vs URL-safe
El alfabeto Base64 estándar usa + y / que son caracteres especiales en URLs y rutas de archivo. La variante URL-safe los reemplaza con - y _ y normalmente omite los caracteres de relleno =. Use codificación URL-safe para tokens JWT, datos en cadenas de consulta, nombres de archivo y cualquier contexto donde + o / serían malinterpretados.
Entrada
Estándar
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
Casos de uso comunes
Adjuntos de correo (MIME)
SMTP fue diseñado para texto ASCII de 7 bits. La codificación Base64 es usada por el estándar MIME para incrustar de forma segura archivos adjuntos binarios (imágenes, PDFs, ejecutables) en mensajes de correo.
URIs de datos
Incruste imágenes, fuentes y otros recursos directamente en HTML o CSS usando URIs de datos: data:image/png;base64,... — eliminando solicitudes HTTP adicionales para recursos pequeños.
Cargas útiles de API
Las APIs REST frecuentemente requieren que los campos binarios (cargas de archivos, claves criptográficas, certificados) estén codificados en Base64 al incrustarlos en JSON, ya que JSON no tiene tipo binario.
Archivos de configuración
Los secretos de Kubernetes, variables de entorno y configuraciones CI/CD almacenan comúnmente secretos binarios y certificados como cadenas Base64 para evitar problemas de escape.
HTTP Basic Auth
El encabezado HTTP Authorization: Basic codifica las credenciales como Base64(usuario:contraseña). Esto no es cifrado — solo proporciona codificación para el transporte en encabezados.
Tokens JWT
Los JSON Web Tokens usan Base64 URL-safe (base64url) para codificar los segmentos de encabezado y carga útil, haciendo el token seguro para usar en URLs y encabezados HTTP sin escape.
Cuándo NO usar Base64
Base64 es una codificación de transporte, no un mecanismo de seguridad. Estos son los usos incorrectos más comunes que causan problemas reales en producción:
✕
No para seguridad o cifrado
Base64 es trivialmente reversible — no se requiere ninguna clave o contraseña para decodificarlo. Cualquier persona que vea una cadena Base64 puede decodificarla en segundos. Nunca uses Base64 como sustituto del cifrado, hash o control de acceso.
✕
No para compresión
Base64 aumenta el tamaño de salida en un ~33%. Es lo contrario de la compresión. No lo uses para reducir el tamaño del payload — usa gzip, Brotli o zstd en su lugar.
✕
No para almacenamiento de archivos binarios
Almacenar archivos binarios grandes como Base64 en bases de datos o APIs JSON desperdicia almacenamiento y memoria de forma significativa. Usa almacenamiento de objetos (S3, R2, Cloudflare) y sirve los binarios directamente.
Ejemplos de código
Cómo codificar una cadena en Base64 en lenguajes y entornos populares:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Codificador Base64 en línea vs. otras herramientas
Existen varios codificadores Base64 en línea. Los diferenciadores clave para el uso diario del desarrollador son la privacidad, la corrección y el soporte de variantes.
Totalmente privado — sin servidor
Este codificador funciona completamente en tu navegador usando la API nativa btoa y TextEncoder. Tu texto nunca se transmite a ningún servidor — seguro para claves de API, tokens y secretos.
Codificación correcta de Unicode
Muchas herramientas Base64 en línea corrompen silenciosamente la entrada no ASCII. Esta herramienta maneja correctamente todo Unicode — emoji, CJK, árabe y todo texto UTF-8 — codificando primero a bytes UTF-8.
Ambas variantes en un solo lugar
La mayoría de las herramientas solo ofrecen Base64 estándar. Este codificador proporciona las variantes estándar (+/) y URL-segura (-_) con manejo automático del relleno — sin necesidad de reemplazar caracteres manualmente.
Preguntas frecuentes
¿Es Base64 lo mismo que cifrado?
No. Base64 es un esquema de codificación, no cifrado. Es trivialmente reversible por cualquiera — no se requiere clave ni contraseña para decodificarlo. Nunca use Base64 para proteger datos sensibles. Use cifrado adecuado (AES, RSA) para ese propósito.
¿Por qué la salida Base64 termina con = o ==?
Base64 trabaja en grupos de 3 bytes (24 bits), produciendo 4 caracteres Base64. Si la longitud de entrada no es múltiplo de 3, se añaden caracteres de relleno (=) para que la longitud de salida sea múltiplo de 4. Un = significa que el último grupo tenía 2 bytes; dos = significa que tenía 1 byte.
¿Qué es Base64 URL-safe?
Base64 URL-safe (definido en RFC 4648 §5) reemplaza + con - y / con _ para que la cadena codificada pueda usarse en URLs, nombres de archivo y encabezados HTTP sin codificación porcentual. También omite típicamente los caracteres de relleno =.
¿Cuánto aumenta Base64 el tamaño del archivo?
La codificación Base64 aumenta el tamaño aproximadamente un 33%. Cada 3 bytes de entrada se convierten en 4 caracteres de salida. Para un archivo de 1 MB, la salida Base64 será de aproximadamente 1.37 MB. Esta sobrecarga es por qué Base64 solo se usa cuando es necesario.
¿Puedo codificar archivos binarios con esta herramienta?
Esta herramienta codifica cadenas de texto (tratadas como bytes UTF-8). Para codificar archivos binarios arbitrarios (imágenes, PDFs, ejecutables), use una biblioteca de lenguaje o herramienta CLI que lea bytes en bruto y los alimente al codificador Base64.
¿Cuál es la diferencia entre btoa() y Buffer.from().toString('base64')?
btoa() es un incorporado del navegador que funciona con cadenas Latin-1; lanzará un error para caracteres no ASCII a menos que los codifique a bytes UTF-8 primero (usando encodeURIComponent). Buffer.from(texto).toString('base64') en Node.js maneja cadenas UTF-8 directamente y es el enfoque preferido en el servidor.
¿Funciona Base64 con archivos binarios?
Esta herramienta codifica cadenas de texto como bytes UTF-8 a Base64. Para archivos binarios (imágenes, PDFs, ejecutables), usa una herramienta de línea de comandos o una biblioteca de lenguaje que lea bytes crudos. En el navegador, usa FileReader.readAsDataURL() que devuelve una URI de datos con contenido binario codificado en Base64.
¿Hay un límite de tamaño para la codificación?
Esta herramienta funciona completamente en el navegador sin límite del lado del servidor. Los límites prácticos dependen de la memoria de tu navegador. Para entradas muy grandes (por encima de unos pocos MB), una herramienta de línea de comandos como base64 (Linux/macOS) o certutil -encode (Windows) es más eficiente.