Base64 Codificar/Decodificar Online

Codifique y decodifique texto en Base64 rápidamente. Herramienta esencial para desarrolladores trabajando con APIs, imágenes y datos binarios.

Soporta UTF-8, emojis y caracteres acentuados

¿Qué es Base64?

Base64 es un esquema de codificación que convierte datos binarios en texto ASCII usando 64 caracteres imprimibles (A-Z, a-z, 0-9, +, /). Se usa ampliamente para transmitir datos binarios a través de medios que solo soportan texto, como email (MIME) y URLs.

¿Cómo funciona la codificación Base64?

La codificación Base64 funciona dividiendo la entrada en grupos de 3 bytes (24 bits) y convirtiendo cada grupo en 4 caracteres de 6 bits. Cuando el número de bytes no es múltiplo de 3, se añaden caracteres de relleno (=) al final.

Ejemplo de conversión:

Texto original: "ABC"

Binario: 01000001 01000010 01000011

Agrupado (6 bits): 010000 010100 001001 000011

Decimal: 16 20 9 3

Base64: "QUJD"

¿Para qué sirve Base64?

1. Incorporar Imágenes en HTML/CSS: Las Data URLs permiten incluir imágenes directamente en el código sin peticiones HTTP adicionales.

<img src="data:image/png;base64,iVBORw0KGg..." />

2. Transmisión de Datos Binarios en JSON: Las APIs REST frecuentemente usan Base64 para enviar archivos o datos binarios en payloads JSON.

3. Autenticación HTTP Basic: Las credenciales se codifican en Base64 en el header Authorization.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

4. Email (MIME): Los adjuntos en emails se codifican en Base64 para garantizar compatibilidad con servidores que solo soportan ASCII de 7 bits.

5. Almacenamiento Temporal: Almacenar datos binarios en cookies, localStorage o sessionStorage.

Ventajas y Desventajas

✓ Ventajas

  • Compatible con sistemas que solo aceptan texto ASCII
  • Fácil de transmitir por email, URL y JSON
  • Soportado nativamente en todos los lenguajes
  • Seguro para copiar/pegar sin perder datos

✗ Desventajas

  • Aumenta el tamaño en ~33% (overhead)
  • No es encriptación (no ofrece seguridad)
  • Costo de CPU para encode/decode
  • No es legible por humanos

Base64 vs Otros Esquemas

EsquemaCaracteresOverheadUso Común
Base64A-Z, a-z, 0-9, +, /~33%Email, JSON, Data URLs
Base64URLA-Z, a-z, 0-9, -, _~33%URLs, JWT tokens
Hexadecimal0-9, A-F100%Hashes, colores CSS
Base32A-Z, 2-7~60%TOTP, códigos de respaldo

Casos de uso prácticos

🖼️ Data URL para favicon

Incorpore un favicon inline sin petición HTTP externa:

🔑 HTTP Basic Auth

Enviar credenciales en peticiones HTTP:

const credentials = btoa('usuario:contraseña');
headers.Authorization = `Basic ${credentials}`;

📧 Adjunto de email

Los protocolos SMTP usan Base64 para adjuntos, garantizando que caracteres especiales no corrompan el mensaje durante la transmisión.

Base64 NO es encriptación

⚠️ Advertencia Importante

Base64 es un esquema de codificación, no encriptación. Cualquier persona puede decodificar Base64 instantáneamente. Nunca use Base64 para proteger contraseñas, tokens o datos sensibles. Para seguridad real, use algoritmos de encriptación como AES, RSA o bcrypt.

FAQ - Preguntas Frecuentes

1. ¿Por qué Base64 aumenta el tamaño del archivo?

Porque convierte 3 bytes (24 bits) en 4 caracteres de 6 bits cada uno. Esto genera un overhead de aproximadamente 33%. Un archivo de 1 MB se convierte en ~1.33 MB en Base64.

2. ¿Qué significa el "=" al final de las cadenas Base64?

El signo "=" es relleno, añadido cuando el número de bytes de entrada no es múltiplo de 3. Puede haber 0, 1 o 2 caracteres "=" al final.

3. ¿Se puede usar Base64 para URLs?

Base64 estándar usa "+", "/" y "=" que son caracteres especiales en URLs. Use Base64URL (reemplaza + por -, / por _ y elimina relleno) para URLs seguras.

4. ¿Cómo convertir imágenes a Base64?

En JavaScript: use FileReader API. Línea de comandos: base64 image.png. En Python: base64.b64encode().

5. ¿Base64 soporta caracteres Unicode?

¡Sí! Nuestra herramienta usa encodeURIComponent para soportar UTF-8, incluyendo emojis y caracteres acentuados.

6. ¿Cuál es la diferencia entre btoa() y atob()?

btoa() = binary to ASCII (codifica). atob() = ASCII to binary (decodifica). Son funciones nativas de JavaScript del navegador.

Herramientas Relacionadas