Desarrollo

¿Qué es la codificación Base64? Una explicación sencilla con ejemplos

Has visto Base64 aunque no lo supieras: largas cadenas de letras y números que terminan en "=" en correos, API, tokens y URL de imágenes. Esto es lo que es, cómo funciona y cuándo usarlo.

Respuesta rápida

Base64 es una forma de representar cualquier dato binario (imágenes, archivos, bytes cifrados) usando solo 64 caracteres de texto seguros: A–Z, a–z, 0–9, + y /, con = como relleno. Permite que los datos binarios viajen por sistemas que solo admiten texto, como JSON, HTML y el correo electrónico. Hace que los datos ocupen un 33 % más, y no es cifrado.

Codificador Base64 convirtiendo una frase UTF-8 con emojis a Base64
Texto UTF-8, emojis incluidos, codificado en Base64 mientras escribes. Captura de pantalla de nuestra herramienta gratuita: Codificador / decodificador Base64.

Por qué existe Base64

Los ordenadores guardan todo como bytes, y un byte puede tener 256 valores distintos. Pero muchos sistemas se diseñaron para transportar texto, y algunos valores de byte tienen en ellos un significado especial: caracteres de control, finales de línea, comillas o caracteres que se estropean al pasar de un sistema a otro. Enviar binario sin más por ellos puede corromperlo.

Base64 lo resuelve traduciendo cualquier byte a un alfabeto pequeño y seguro que atraviesa intacto cualquier sistema de texto.

Cómo funciona la codificación Base64, paso a paso

Vamos a codificar la palabra Man:

  1. Convertir los caracteres en bytes. M = 77, a = 97, n = 110.
  2. Escribirlos en binario (8 bits cada uno): 01001101 01100001 01101110.
  3. Reagruparlos en bloques de 6 bits: 010011 010110 000101 101110.
  4. Convertir cada bloque en un número: 19, 22, 5, 46.
  5. Buscar cada número en el alfabeto Base64 (A=0 … Z=25, a=26 … z=51, 0=52 … 9=61, +=62, /=63): 19 = T, 22 = W, 5 = F, 46 = u.

Resultado: Man → TWFu. Cada 3 bytes se convierten en 4 caracteres, por eso la salida en Base64 es aproximadamente un tercio más larga que la entrada.

¿Qué es el "=" del final?

Cuando la entrada no es múltiplo de 3 bytes, la salida se rellena con = para que su longitud sea múltiplo de 4. Ma se convierte en TWE= y M en TQ==.

Usos habituales de Base64

  • Data URL: incrustar imágenes pequeñas directamente en HTML o CSS: <img src="data:image/png;base64,iVBORw0KGgo…">.
  • Adjuntos de correo: MIME codifica los adjuntos en Base64 para que lleguen intactos a través de los servidores de correo.
  • API: enviar archivos o datos binarios dentro de JSON, que solo admite texto.
  • Autenticación HTTP Basic: usuario:contraseña se codifica en Base64 en la cabecera Authorization.
  • JSON Web Tokens (JWT): la cabecera y la carga útil van en Base64 apto para URL.
  • Certificados y claves: los archivos PEM son Base64 entre las líneas "BEGIN" y "END".

Base64 no es cifrado

Cualquiera puede decodificar Base64 al instante. No oculta nada. Las credenciales de HTTP Basic y el contenido de los JWT los puede leer cualquiera que los vea, por eso solo deben viajar por HTTPS. Nunca uses Base64 para "proteger" contraseñas, claves de API o datos personales.

Base64 estándar frente a Base64 apto para URL

El Base64 estándar usa + y /, que tienen un significado especial en las URL y las rutas de archivo. El Base64 apto para URL (también llamado Base64URL) los sustituye:

EstándarApto para URL
Carácter 62+-
Carácter 63/_
Relleno=Normalmente se omite
Se usa enCorreo, data URL, PEMJWT, parámetros de URL, nombres de archivo

Cómo codificar y decodificar Base64

  1. Abre el codificador / decodificador Base64 gratuito.
  2. En la pestaña Texto, escribe o pega texto para codificarlo, o Base64 para decodificarlo. El resultado se actualiza mientras escribes.
  3. Activa el modo apto para URL para tokens y URL.
  4. En la pestaña Archivo, codifica una imagen o un documento para obtener una cadena Base64 o una data URL, o decodifica Base64 a un archivo descargable.

Todo se ejecuta en tu navegador. El texto se trata como UTF-8, así que las tildes, la ñ, los alfabetos no latinos y los emoji se conservan correctamente.

Pruébalo gratis: Codificador / decodificador Base64

Codifica o decodifica texto e imágenes en Base64. Funciona en tu navegador, sin registro.

Abrir la herramienta

Base64 en el código

// JavaScript (navegador, solo texto ASCII)
btoa('Man');      // "TWFu"
atob('TWFu');     // "Man"

# Python
import base64
base64.b64encode(b'Man')      # b'TWFu'
base64.b64encode(b'\xfb\xff')          # b'+/8='
base64.urlsafe_b64encode(b'\xfb\xff')  # b'-_8='  (apto para URL)

# Línea de comandos (macOS / Linux)
echo -n 'Man' | base64        # TWFu

Nota: btoa() del navegador solo acepta caracteres del rango Latin-1. Para texto Unicode completo (por ejemplo con "€"), conviértelo antes a bytes UTF-8, por ejemplo con TextEncoder.

Cuándo no usar Base64

  • Imágenes grandes en páginas web. Incrustarlas hace más pesado el HTML o el CSS, y la imagen no se puede almacenar en caché por separado. Incrusta solo iconos pequeños, de unos pocos KB.
  • Guardar archivos en bases de datos cuando la base de datos admite columnas binarias.
  • Cualquier cosa que deba ser secreta. Usa cifrado de verdad.

Preguntas frecuentes

¿Por qué Base64 hace los archivos más grandes?

Cada carácter Base64 transporta 6 bits de datos, pero ocupa 8 bits. Así, 3 bytes de entrada se convierten en 4 bytes de salida, un 33 % más (algo más si hay saltos de línea).

¿Cómo sé si una cadena está en Base64?

Solo usa A–Z, a–z, 0–9, + / (o - _), su longitud suele ser múltiplo de 4 y puede terminar en = o ==. Prueba a decodificarla para asegurarte.

¿Por qué mi texto decodificado parece un galimatías?

Probablemente los datos son un archivo binario, como una imagen o un PDF, y no texto. Decodifícalos como archivo.

En resumen

Base64 es una capa de traducción que permite que los datos binarios viajen de forma segura como texto. Es esencial para las data URL, el correo, las API y los tokens, pero añade un 33 % al tamaño y no ofrece ninguna seguridad.

¿Algo desactualizado o poco claro? Escribe a contact@ultratoolsai.com y lo corregiremos.

Codificador / decodificador Base64 Gratis · privado · en tu navegador Abrir la herramienta