Menu

Codificador / Decodificador Base64

Codifica o decodifica cadenas y archivos Base64 al instante.

Última actualización

Modo
TextoPega texto para empezar
Base64
La salida codificada o decodificada aparece aquí — todo se ejecuta localmente.

¿Qué es Base64?

Base64 es un esquema de codificación que representa datos binarios usando 64 caracteres imprimibles. Los desarrolladores recurrimos a él cada vez que un sistema que solo entiende texto necesita transportar bytes: imágenes pequeñas embebidas en HTML, tokens, adjuntos de correo, data URL, secretos pegados en logs o campos de JSON que guardan blobs binarios.

Base64 es *codificación*, no cifrado. Decodificar una cadena Base64 suele revelar el contenido original al instante, así que nunca debe usarse como mecanismo de seguridad. Cualquier cosa metida en Base64 es prácticamente pública, salvo que la hayas cifrado *antes* de codificarla.

Por dentro, Base64 toma 3 bytes (24 bits) y los reescribe como 4 caracteres de un alfabeto fijo de 64 (AZ, az, 09, +, /). Cuando la longitud de entrada no es múltiplo de 3, el codificador añade uno o dos caracteres = al final como relleno (padding). Por eso muchas cadenas Base64 acaban en =.

Lo que vas a aprender usando Base64

  • La codificación cambia cómo se representan los datos, pero no los oculta ni los protege: cualquiera puede decodificarlos.
  • El resultado en Base64 ocupa aproximadamente 4/3 del tamaño original, así que es cómodo pero poco eficiente en espacio.
  • Caracteres de relleno como = completan el último grupo de 4 y son totalmente normales en muchas cadenas Base64.

Cómo codificar y decodificar Base64 paso a paso

  1. Elige la dirección

    Selecciona Codificar si tienes texto plano o un archivo y quieres obtener Base64. Selecciona Decodificar si tienes una cadena Base64 y quieres recuperar el contenido original.

  2. Pega tu entrada o suelta un archivo

    Pega una cadena en el cuadro de texto, o arrastra un archivo (imagen, PDF, lo que sea) sobre la zona de carga. Los archivos se convierten en una data: URL lista para incrustar en HTML o CSS.

  3. Lee la salida

    La salida codificada es la cadena Base64. La salida decodificada es el texto original — o, si la entrada era un archivo, los bytes recuperados como un enlace de descarga.

  4. Copia el resultado

    Pulsa el botón de copiar para llevar el resultado al portapapeles. Todo se ejecuta en tu navegador, así que la entrada nunca sale de tu equipo.

Referencia rápida de Base64

Las piezas con las que te vas a topar una y otra vez al trabajar con Base64 — definidas en el RFC 4648.

ElementoSignificadoEjemplo
AlfabetoLos 64 caracteres del Base64 estándarA–Z, a–z, 0–9, +, /
Alfabeto URL-safeEl que usan los JWT y las URLA–Z, a–z, 0–9, -, _
PaddingRellena el último grupo cuando la longitud no es múltiplo de 3= o ==
Tamaño de grupoBytes por bloque codificado → 4 caracteres de salida3 bytes → 4 caracteres
CrecimientoLa salida es ~33 % más grande que la entrada100 B → 136 caracteres
Data URLArchivo embebido en línea para HTML/CSSdata:image/png;base64,...

Ejemplos de Base64 para probar

Decodificar una palabra sencilla

Codificado

SGVsbG8gV29ybGQ=

Decodificado

Hello World

El = final es padding porque Hello World ocupa 11 bytes, que no es múltiplo de 3. Al decodificar, ese relleno se elimina sin tocar el contenido.

Codificar un payload JSON pequeño

Original
{"role":"student","active":true}
Base64

eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=

Los tokens JWT codifican cada segmento exactamente igual — por eso los payloads de JWT casi siempre empiezan por eyJ, que es la forma Base64 de {".

Reconocer una data URL

Data URL

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=

El prefijo declara el tipo de medio (image/png) y la codificación (base64). Todo lo que va después de la coma es el contenido del archivo. Va de maravilla para imágenes muy pequeñas que se cargan junto con la página.

Comparar el alfabeto estándar y el URL-safe

Estándar

Pj4/Pyc+Pg==

URL-safe

Pj4_Pyc-Pg

Base64 URL-safe cambia + por - y / por _ para que el valor pueda ir dentro de una URL sin escapar nada más. Los JWT usan esta variante.

Errores típicos con Base64

  • Decir que Base64 está "cifrado". Cualquiera puede decodificarlo sin contraseña ni clave.
  • Olvidar que el texto Unicode hay que convertirlo a bytes UTF-8 *antes* de codificarlo en Base64 — si no, los caracteres no ASCII no sobreviven la ida y vuelta.
  • Quitar a mano el padding = y pasárselo a un decodificador estricto que sí lo espera. (Los decodificadores URL-safe suelen aceptar el padding ausente; los estándar puede que no.)

Preguntas frecuentes sobre Base64

¿Qué es la codificación Base64?
Base64 es una codificación que representa datos binarios como texto imprimible usando un alfabeto de 64 caracteres. Se utiliza siempre que los bytes tienen que viajar por un sistema que solo acepta texto: APIs, JSON, JWT, correo electrónico, data URL.
¿Cómo funciona Base64?
Base64 toma 3 bytes de entrada (24 bits) y los divide en cuatro grupos de 6 bits. Cada grupo de 6 bits se mapea a uno de los 64 caracteres del alfabeto. Si la entrada no es múltiplo de 3 bytes, se añaden uno o dos = como padding.
¿Cómo decodifico una cadena Base64?
Pega la cadena en un decodificador Base64. La salida será el texto o el archivo original. En código, casi todos los lenguajes traen una función nativa: atob() en el navegador, Buffer.from(str, 'base64') en Node.js, base64.b64decode() en Python.
¿Es seguro Base64?
No. Base64 es codificación, no cifrado. Está pensado para representar y transportar datos, no para guardar secretos. Si necesitas confidencialidad, cifra los datos primero y luego codifica el texto cifrado en Base64.
¿Por qué a veces Base64 acaba en =?
El = es padding. Base64 produce 4 caracteres por cada 3 bytes de entrada. Cuando la longitud de entrada no es múltiplo de 3, se añaden uno o dos = para que la longitud codificada siga siendo múltiplo de 4.
¿Puedo codificar imágenes con Base64?
Sí. Los bytes de una imagen se pueden codificar en Base64 y meterlos en una URL del tipo data:image/png;base64,... para que la imagen quede embebida directamente en HTML, CSS o JSON, sin una petición de red aparte.

Otras herramientas para desarrolladores

Aprende a programar con Coddy

COMENZAR