Glossary
Base64
Codificación de binario a texto
By Buğra SözeriPublished Updated
Base64 es un esquema de codificación que representa datos binarios arbitrarios usando 64 caracteres ASCII: las letras mayúsculas A-Z, las letras minúsculas a-z, los dígitos 0-9 y los símbolos + y /. Rellenado con el carácter = hasta un múltiplo de 4 bytes. Definido en el RFC 4648.
Tres bytes de entrada se codifican en cuatro caracteres Base64, por lo que la forma codificada es aproximadamente un 33% más grande que el origen. La codificación y decodificación son deterministas y exactas — no hay pérdida de calidad, solo inflación de tamaño.
Los casos de uso principales:
- Incrustar datos binarios en protocolos de solo texto. Correo electrónico (adjuntos MIME), JSON (donde los campos binarios no están permitidos de forma nativa), URI de datos en HTML/CSS.
- JWT (JSON Web Token). Los payloads JWT están codificados en Base64 (específicamente base64url, ver abajo) para caber de forma segura dentro de cabeceras HTTP y URLs.
- Almacenar binarios en bases de datos o archivos de configuración cuando el tipo de columna nativo sería incómodo (p. ej., las columnas BLOB de SQLite funcionan pero requieren manejo a nivel de controlador; una columna TEXT con Base64 es más portable).
Base64url es una variante definida en el mismo RFC que reemplaza + con - y / con _. Estas dos sustituciones hacen que los datos codificados sean seguros para URLs — ni - ni _ necesitan codificación porcentual en una URL. JWT y las APIs web modernas usan base64url en todo momento.
Codifique o decodifique en su navegador con nuestra herramienta Base64, que gestiona correctamente el texto UTF-8 (las primitivas JavaScript btoa / atob no lo hacen).
Ejemplo práctico
Codifique la cadena ASCII de tres bytes “Man”. Los bytes son 0x4D 0x61 0x6E, o en binario 01001101 01100001 01101110. Concatene los 24 bits y divídalos en cuatro grupos de 6 bits: 010011 010110 000101 101110 = 19, 22, 5, 46. El alfabeto Base64 asigna esos índices a T, W, F, u — produciendo “TWFu”. No se necesita relleno porque la longitud de la entrada (3 bytes) ya era un múltiplo de 3. Ahora codifique “Ma” (2 bytes): los bits son 01001101 01100001, rellenados con dos bits cero para hacer 18 bits, divididos en tres grupos de 6 bits 010011 010110 000100 = 19, 22, 4 = T, W, E. Añada un = para marcar el tercer carácter faltante del grupo: “TWE=”. La decodificación invierte el proceso y descarta el relleno. La inflación de tamaño del 33% es exactamente la relación 4/3 — cada 3 bytes de entrada se convierten en 4 bytes de salida.
Cuándo y por qué importa
Base64 importa cuando los datos binarios tienen que viajar por un canal que corrompe los bytes no imprimibles — correo SMTP (diseñado para texto de 7 bits), cadenas de consulta de URL, valores JSON, secciones CDATA de XML, variables de entorno, archivos de configuración YAML y transferencias de portapapeles entre sistemas con codificaciones incompatibles. El error clásico es usar Base64 donde no es necesario: un blob binario almacenado en una columna bytea de Postgres no necesita codificación porque el protocolo maneja binarios de forma nativa, pero el mismo blob insertado mediante una cadena SQL literal sí la necesita. El segundo error clásico es el opuesto — incrustar una imagen JPEG como URI de datos en CSS usando Base64 para evitar una solicitud HTTP, y luego descubrir que el archivo inflado es mayor que el ahorro de red en conexiones multiplexadas HTTP/2. Las políticas modernas de incrustación de imágenes suelen establecer el límite en torno a 4-8 KB. Referencia: RFC 4648 — Codificaciones de datos Base16, Base32 y Base64.
El relleno y los caracteres "=" al final: dado que Base64 empaqueta cada 3 bytes de entrada en 4 caracteres de salida, las entradas cuya longitud no es múltiplo de 3 producen 1 o 2 caracteres de relleno al final. YQ==decodifica a un único byte ("a"); YWI=decodifica a dos bytes ("ab"); YWJjdecodifica a tres bytes ("abc") sin relleno. Muchos analizadores Base64 aceptan entrada sin relleno aunque el cumplimiento estricto del RFC lo requiera — base64url en contextos JWT omite deliberadamente el relleno. Compruebe siempre si su par codificador/decodificador coincide en el relleno, especialmente cuando conecta implementaciones estrictas y permisivas.
Por qué Base64 no es cifrado: Base64 es una asignación determinista que cualquiera puede invertir sin clave. Pegar una cadena Base64 en un decodificador en línea revela el texto plano inmediatamente. Es una codificación (un cambio de representación), no un cifrado (una transformación de confidencialidad). Almacenar contraseñas, claves API o datos personales como Base64 en cualquier archivo que un atacante pudiera leer es funcionalmente equivalente a almacenarlos en texto plano. Para confidencialidad, use cifrado apropiado (AES-GCM, ChaCha20-Poly1305) con una gestión de claves adecuada antes de cualquier envoltura Base64. Referencia: RFC 4648 — Codificaciones de datos Base16, Base32 y Base64.
Prueba la calculadora
Codifique o decodifique cualquier cadena o archivo a Base64, incluida la variante segura para URLs.
Abrir la herramienta Base64 →Frequently asked questions
- ¿Qué es Base64?
- Base64 es un esquema de codificación que convierte datos binarios arbitrarios en una cadena de 64 caracteres ASCII (A-Z, a-z, 0-9, +, /). Aumenta el tamaño de los datos un 33% pero hace que el binario sea seguro para incrustar en contextos de solo texto como cuerpos de correo, JSON y cabeceras HTTP.
- ¿Cómo se usa Base64 en la práctica?
- Los tokens JWT son tres segmentos codificados en Base64url unidos por puntos. Incrustar una imagen directamente en un archivo CSS como URL de datos usa Base64. SMTP envía archivos adjuntos como bloques Base64 porque el protocolo históricamente solo manejaba ASCII de 7 bits.
- ¿Cuál es la diferencia entre Base64 y Base64url?
- Base64url reemplaza el + estándar con - y / con _ para hacer que la salida sea segura en URLs y nombres de archivo sin codificación porcentual. Los tokens JWT y OAuth usan Base64url; los archivos adjuntos de correo usan Base64 estándar.
- ¿Base64 cifra los datos?
- No — Base64 es una codificación, no un cifrado. Cualquier decodificador puede recuperar inmediatamente los bytes originales. Se usa para hacer que los datos binarios sean seguros para texto, no para ocultarlos o protegerlos.
Related
Published May 14, 2026 · Last reviewed May 31, 2026