Base64 aparece en JWTs, en data: URIs, en cabeceras de autenticación básica y en la mitad de los correos con adjuntos del mundo. Y aun así, es una de las técnicas peor entendidas: mucha gente cree que Base64 es una forma de cifrado. No lo es.
Qué hace exactamente
Base64 convierte datos binarios en texto imprimible, usando 64 caracteres seguros (A-Z, a-z, 0-9, +, /). No comprime ni oculta nada: es una codificación reversible por diseño, tan reversible que puedes decodificarla mentalmente si te sabes la tabla. Su único trabajo es garantizar que unos bytes arbitrarios sobrevivan intactos por canales pensados para texto (JSON, XML, formularios, correo).
El coste: un 33 % más de tamaño
Cada 3 bytes de datos originales se convierten en 4 caracteres Base64. Eso es un 33 % de overhead fijo, siempre. Por eso incrustar una imagen como data:image/png;base64,... dentro de un HTML o CSS solo compensa para iconos muy pequeños (unos pocos KB): ahorras una petición HTTP, pero pagas peso extra y pierdes el cacheo independiente del archivo.
Dónde sí tiene sentido
- JSON Web Tokens (JWT): el header y el payload van en Base64URL (variante con
-y_en vez de+y/, sin=de relleno, para que quepa en una URL sin escapar caracteres). - Cabeceras
Authorization: Basic: usuario y contraseña concatenados y codificados — por eso HTTP Basic Auth exige HTTPS, decodificar Base64 es trivial. - Adjuntar binarios en JSON: cuando no puedes usar
multipart/form-data, Base64 es la forma estándar de meter una imagen o PDF dentro de un campo de texto.
El error que hay que evitar
Si necesitas ocultar un dato (una contraseña, un token secreto en tránsito), Base64 no te protege de nada — es codificación, no cifrado. Para eso usa TLS en el transporte y, si necesitas cifrado real en reposo, algo como AES con nuestro cifrado AES-256, que sí requiere una contraseña y no se puede revertir sin ella.
Puedes codificar y decodificar texto o imágenes con el conversor Base64 (incluye la variante URL-safe) o convertir directamente una imagen a data: URI con el conversor Base64 de imágenes — todo en tu navegador, sin subir el archivo a ningún sitio.
Preguntas frecuentes
¿Cuánto crece un archivo al pasarlo a Base64?
Cada 3 bytes originales se convierten en 4 caracteres, así que el tamaño aumenta aproximadamente un 33 %. Si además el resultado viaja dentro de un JSON o una página HTML comprimida con gzip, parte de ese sobrecoste se recupera, pero nunca del todo.
¿Por qué mi Base64 acaba en uno o dos signos «=»?
Es el relleno (padding): Base64 trabaja en bloques de 3 bytes y, cuando el último bloque está incompleto, se completa con «=» hasta formar grupos de 4 caracteres. Algunas variantes, como la de los JWT, lo omiten porque se puede deducir de la longitud.
¿Puedo usar Base64 para guardar contraseñas?
No. Es una codificación reversible sin clave. Para contraseñas usa un algoritmo de hash lento con sal (bcrypt, scrypt o Argon2), y para proteger datos que necesites recuperar, cifrado real como AES-GCM.
¿Por qué al decodificar salen caracteres raros?
Casi siempre es un problema de codificación de texto: el original no estaba en UTF-8, o has decodificado bytes binarios (una imagen, un PDF) como si fueran texto. Comprueba con qué codificación se generó y si el contenido es realmente texto.

