Todos los artículos

Base64: para qué sirve la codificación y cómo funciona

Base64 es una forma de representar datos binarios arbitrarios como texto compuesto solo por letras, números y los caracteres +, / y =. No comprime ni cifra los datos: el resultado ocupa aproximadamente un tercio más, y cualquiera que conozca el algoritmo puede leer el contenido original.

Cómo funciona la codificación

Los bytes de entrada se agrupan de tres en tres (24 bits) y se dividen en cuatro bloques de seis bits. Cada bloque corresponde a un carácter del alfabeto Base64 (A–Z, a–z, 0–9, +, /). Si la longitud de los datos no es múltiplo de tres bytes, al final se añade el carácter de relleno =.

Para qué sirve

Muchos protocolos y formatos —correo electrónico (MIME), URL, JSON, XML— están pensados para texto y no manejan bien bytes "en crudo": bytes nulos, caracteres de control o secuencias que chocan con la sintaxis del formato. Base64 evita ese problema convirtiendo cualquier dato binario en texto seguro.

Casos de uso habituales

  • Adjuntos de correo mediante MIME.
  • Enviar imágenes o archivos pequeños dentro de una API JSON.
  • Guardar datos binarios en campos de texto de una base de datos o archivo de configuración.
  • Codificar las partes header y payload de un JWT.

Qué NO es Base64

No es cifrado ni hashing. Cualquiera puede decodificar una cadena Base64 y recuperar los datos originales sin necesitar clave ni contraseña: es solo un formato de representación, no una medida de seguridad.

Alfabeto estándar y alfabeto URL-safe

El alfabeto clásico de Base64 usa los caracteres + y /, que tienen un significado especial en las URL y en los nombres de archivo. Para esos casos existe la variante Base64URL, donde + se sustituye por - y / por _. Si se inserta el resultado de la codificación estándar en una URL sin aplicar percent-encoding adicional, los caracteres + y / pueden distorsionar la dirección o entrar en conflicto con los separadores de ruta.

Error habitual: relleno truncado o «roto»

El carácter = al final de la cadena no es basura, sino parte de la codificación: indica cuántos bytes faltan en el último bloque. Si se copia una cadena Base64 de forma incompleta o se eliminan los caracteres de relleno a mano, el decodificador devolverá un error o un resultado truncado. Algunos sistemas (por ejemplo, JWT) descartan el = deliberadamente, y en ese caso hay que restaurar la longitud antes de decodificar.

Probar la herramienta