Base64
Concepto de Desarrollo web en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 14 de julio de 2026
Base64 es un esquema de codificación que representa datos binarios usando solo 64 caracteres ASCII imprimibles: las letras A–Z y a–z, los dígitos 0–9 y los símbolos + y /. Su propósito no es proteger datos, sino hacer que cualquier contenido binario (imágenes, PDFs, bytes arbitrarios) pueda viajar de forma segura por canales diseñados solo para texto.
¿Por qué existe Base64?
Muchos protocolos —email (SMTP), HTTP, JSON— fueron diseñados para texto ASCII. Enviar un archivo binario directamente por esos canales puede corromper el contenido si hay bytes que el protocolo interpreta como caracteres de control. Base64 elimina ese problema: convierte cualquier byte en uno de sus 64 caracteres seguros.
Cómo funciona la codificación
El algoritmo trabaja en bloques de 3 bytes (24 bits) y los convierte en 4 caracteres Base64 (6 bits cada uno):
Texto: "Man"
Bytes: 77 97 110 → 01001101 01100001 01101110
Grupos: 010011 010110 000101 101110
Base64: T W F u → "TWFu"
Si la longitud del texto no es múltiplo de 3, se rellena con el carácter = al final (uno o dos = según cuántos bytes falten).
Usos comunes
1. Data URLs en HTML/CSS
Incrustar una imagen pequeña directamente en el código sin fichero externo:
<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
Útil para iconos pequeños que quieres evitar como petición HTTP separada. No recomendable para imágenes grandes porque aumenta el tamaño del HTML un 33 %.
2. Autenticación HTTP Basic
El header de autenticación básica codifica usuario:contraseña en Base64:
Authorization: Basic dXN1YXJpbzpjb250cmFzZW5h
Como Base64 no cifra nada, es imprescindible usar HTTPS para que esta credencial no viaje en claro.
3. Tokens y JSON Web Tokens (JWT)
Los JWT tienen tres partes separadas por puntos, cada una codificada en Base64url (variante que reemplaza + por - y / por _ para que sea seguro en URLs). El payload con los datos del usuario es Base64, no está cifrado: cualquiera puede decodificarlo.
4. Adjuntos de email (MIME)
Los archivos adjuntos en email se codifican en Base64 dentro del mensaje para que puedan transmitirse por SMTP, que originalmente solo soportaba texto de 7 bits.
Base64 vs Base64url
| Variante | Caracteres extra | Carácter de relleno | Uso típico |
|---|---|---|---|
| Base64 estándar | + y / | = | Email, HTML, APIs genéricas |
| Base64url | - y _ | Omitido | URLs, JWT, tokens en querystring |
La diferencia importa: un token Base64 estándar con + en una URL puede interpretarse como espacio y romper la petición.
En la terminal
Codificar en macOS/Linux:
echo -n "Hola mundo" | base64
# SGVsYSBtdW5kbw==
echo "SGVsYSBtdW5kbw==" | base64 --decode
# Hola mundo
Errores comunes
- Confundirlo con cifrado: Base64 no protege la información. Si necesitas seguridad, usa HTTPS y cifrado real (AES, RSA, etc.).
- Incrustar imágenes grandes: una imagen de 100 KB se convierte en ~137 KB de texto, que además el navegador no puede cachear de forma independiente.
- Problemas de relleno (
=): algunas implementaciones fallan si falta el relleno al final. Si recibes un token y el decodificador falla, prueba a añadir los=necesarios para que la longitud sea múltiplo de 4.
Conceptos relacionados
También en Desarrollo web
Preguntas frecuentes
¿Base64 cifra o encripta los datos?
¿Para qué se usa Base64 en la web?
¿Cuánto aumenta el tamaño al codificar en Base64?
Ver todas las herramientas de Utilidades.