¿Qué es Base64? Una guía completa para principiantes
¿Qué es la codificación Base64?
Base64 es un esquema de codificación de binario a texto que representa datos binarios en un formato de cadena ASCII utilizando un alfabeto de 64 caracteres. Fue diseñado originalmente para archivos adjuntos de correo electrónico mediante MIME (Multipurpose Internet Mail Extensions) y sigue siendo uno de los métodos de codificación más utilizados en la web.
Cuando necesitas enviar datos binarios — como una imagen, un archivo o bytes comprimidos — a través de un canal que fue construido para texto, Base64 es la solución ideal. Toma bytes arbitrarios y los convierte en una cadena segura y portable de letras, dígitos y un par de caracteres especiales.
¿Cómo funciona Base64?
Base64 funciona procesando datos binarios en grupos de tres bytes (24 bits) y convirtiendo cada grupo en cuatro caracteres Base64. El nombre "Base64" proviene del hecho de que el alfabeto de codificación utiliza 64 caracteres diferentes: A-Z, a-z, 0-9, + y /.
El algoritmo de codificación paso a paso
- Toma 3 bytes (24 bits) de datos de entrada
- Divídelos en cuatro grupos de 6 bits
- Asigna cada valor de 6 bits (0-63) a la tabla del alfabeto Base64
- Añade relleno (
=) si la longitud de la entrada no es divisible por 3
Aquí tienes un ejemplo concreto. La cadena "Man" se codifica de la siguiente manera:
M(ASCII 77) =01001101a(ASCII 97) =01100001n(ASCII 110) =01101110
Combinado: 01001101 01100001 01101110 → dividido en grupos de 6 bits:
010011= 19 →T010110= 22 →W000101= 5 →F101110= 46 →u
Así que "Man" se convierte en "TWFu".
¿Qué pasa con el relleno?
Si la longitud de la entrada no es un múltiplo de 3 bytes, Base64 añade caracteres de relleno (=) para que la salida sea un múltiplo de 4 caracteres:
- 1 byte de entrada → 2 caracteres Base64 + 2 caracteres de relleno (
==) - 2 bytes de entrada → 3 caracteres Base64 + 1 carácter de relleno (
=)
Por ejemplo, el único byte correspondiente a "M" se codifica como TQ==.
La tabla del alfabeto Base64
| Valor | Car | Valor | Car | Valor | Car | Valor | Car | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |
Casos de uso comunes para la codificación Base64
Archivos adjuntos de correo electrónico (MIME)
Base64 fue creado para MIME (Multipurpose Internet Mail Extensions). Los protocolos de correo electrónico como SMTP fueron diseñados para texto ASCII de 7 bits, por lo que los archivos adjuntos binarios como PDFs, imágenes y archivos ZIP deben codificarse como Base64 antes de enviarse por correo electrónico.
Data URLs en HTML y CSS
Base64 te permite incrustar imágenes, fuentes y otros medios directamente en archivos HTML o CSS usando data URLs:
<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />
Esto elimina una solicitud HTTP adicional, lo que puede ser beneficioso para recursos pequeños.
JSON Web Tokens (JWT)
Los JWTs utilizan la variante segura para URLs de Base64 (Base64url) para codificar la cabecera, la carga útil y la firma de cada token. Por eso ves cadenas como eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 en los sistemas de autenticación.
Almacenamiento de binarios en bases de datos
Muchas bases de datos están optimizadas para el almacenamiento de texto y pueden no manejar bytes en bruto adecuadamente. Codificar datos binarios como Base64 te permite almacenar imágenes, objetos serializados o datos cifrados en columnas de texto.
Cargas útiles de APIs
Al enviar datos binarios a través de una API REST o GraphQL — especialmente en formato JSON — Base64 es la elección estándar porque JSON no puede representar bytes en bruto de forma nativa.
¿Base64 aumenta el tamaño de los archivos?
Sí. La codificación Base64 aumenta el tamaño de los datos aproximadamente un 33%. Por cada 3 bytes de entrada, obtienes 4 bytes de salida. Esta sobrecarga es el coste de hacer que los datos binarios sean transportables a través de canales de solo texto.
¿Base64 es cifrado?
No. Este es un error común. Base64 es un esquema de codificación, no cifrado. Cualquiera que reciba una cadena Base64 puede decodificarla de vuelta a los datos originales sin necesidad de ninguna clave. No proporciona seguridad ni confidencialidad de ningún tipo. Si necesitas proteger datos, utiliza cifrado (como AES) y luego, opcionalmente, codifica los bytes cifrados con Base64 para su transporte.
Base64 vs otras codificaciones de binario a texto
| Codificación | Tamaño del alfabeto | Sobrecarga | Mejor para | |----------|--------------|----------|----------| | Base64 | 64 caracteres | ~33% | Transferencia e incrustación de datos | | Base32 | 32 caracteres | ~60% | Contextos legibles por humanos y sin distinción de mayúsculas | | Base16 (Hex) | 16 caracteres | 100% | Depuración, volcados de memoria, códigos de color | | Ascii85 | 85 caracteres | ~25% | Adobe PostScript, flujos PDF |
Base64 ofrece un equilibrio entre eficiencia espacial y amplia compatibilidad, lo que lo convierte en la codificación de binario a texto más popular en la web.
Prueba la codificación Base64 en línea
¿Listo para codificar tus propios datos? Usa nuestro codificador y decodificador Base64 gratuito en línea para convertir texto o archivos al instante en tu navegador. No se requiere instalación ni registro.