
Qué es Base64: guía práctica de codificación y decodificación
Entiende cómo Base64 convierte bytes en texto, por qué aumenta el tamaño y por qué nunca debe confundirse con cifrado.
Base64 representa datos binarios mediante caracteres de texto seguros. Se usa cuando un sistema acepta texto, pero debe transportar bytes de una imagen, un archivo o una cadena Unicode. No comprime ni protege la información: cambia su representación para que pueda viajar por formatos como JSON, correo electrónico o determinados encabezados.
Cómo funciona paso a paso
Tres bytes contienen 24 bits. Base64 divide esos bits en cuatro grupos de seis. Cada grupo puede tener 64 valores y selecciona un símbolo del alfabeto A–Z, a–z, 0–9, + y /. Por eso tres bytes se convierten en cuatro caracteres y el resultado suele ser aproximadamente un 33% mayor que el original.
| Entrada | Salida Base64 |
|---|---|
Hi | SGk= |
Hello | SGVsbG8= |
El signo igual es relleno. Completa un bloque final cuando la cantidad de bytes no es múltiplo de tres. Algunas variantes omiten el relleno, de modo que su ausencia no demuestra por sí sola que una cadena esté dañada.
Base64 y Base64url
La variante Base64url sustituye + por - y / por _. Así evita caracteres con significado especial en rutas y consultas. Los segmentos de un JWT usan Base64url. Antes de decodificar, identifica la variante; añadir o quitar caracteres sin conocer el formato puede producir un resultado incorrecto.
Texto, bytes y UTF-8
Base64 opera sobre bytes, no sobre letras. Para codificar español, árabe o emojis, el programa convierte primero el texto a bytes, normalmente con UTF-8. Al decodificar debe aplicar el mismo juego de caracteres. Si los bytes son correctos pero se leen con otra codificación, aparecerán símbolos extraños.
Usos razonables
- Transportar pequeños datos binarios dentro de JSON.
- Adjuntar contenido en formatos de correo diseñados para texto.
- Crear un data URI para un recurso pequeño y autónomo.
- Representar bytes en registros o herramientas de diagnóstico controladas.
Cuándo no conviene
No incrustes imágenes grandes en HTML: el documento crece, el recurso no se almacena en caché por separado y el navegador debe decodificarlo. Para archivos grandes suele ser mejor almacenamiento binario u objetos y una referencia. Tampoco uses Base64 para contraseñas, claves o datos privados; cualquiera puede invertirlo sin una contraseña.
Codificar cambia el formato. Cifrar intenta impedir que una persona no autorizada entienda el contenido.
Ejemplo de trabajo seguro
- Confirma si la entrada es Base64 estándar o Base64url.
- Limita el tamaño antes de procesar datos de origen desconocido.
- Decodifica a bytes y después interpreta el tipo de archivo o UTF-8.
- Comprueba una ida y vuelta contra el original.
- No ejecutes ni abras automáticamente el resultado.
Puedes probar texto no confidencial con el codificador y decodificador Base64. Para parámetros de enlaces usa el codificador de URL, que resuelve un problema diferente. La definición interoperable está en RFC 4648.
Preguntas frecuentes
¿Base64 reduce el tamaño?
No. Normalmente lo aumenta alrededor de un tercio.
¿Puede ocultar una contraseña?
No. Es reversible y no utiliza una clave secreta.
¿Por qué falla una cadena válida?
Puede ser otra variante, faltar relleno, incluir espacios no permitidos o contener bytes que no representan texto en la codificación esperada.