Codificar y Decodificar Base64

Codifica y decodifica Base64 online con soporte UTF-8 correcto (ñ, ç, acentos y emoji), variante URL-safe y archivos. Todo en tu navegador, sin subir nada.

0 bytes

¿Qué es Base64?

Base64 es un sistema de codificación que representa datos binarios usando solo 64 caracteres de texto imprimible (A–Z, a–z, 0–9, + y /), para poder transportarlos por canales que solo aceptan texto.

La idea es sencilla: se agrupan los bytes de tres en tres (24 bits) y se reparten en cuatro grupos de 6 bits, cada uno de los cuales se traduce a uno de esos 64 caracteres. Por ejemplo, la palabra «Man» (bytes 77, 97, 110) se convierte en «TWFu». Cuando los bytes no son múltiplo de tres, se añade el relleno «=».

Base64 no comprime ni protege nada; de hecho, ocupa un 33% más que el original. Su valor está en que un dato binario (una imagen, un archivo) se puede meter dentro de un texto, un correo, un JSON o una URL sin que se corrompa.

Base64 NO es cifrado

Importante: Base64 es una codificación, no un cifrado. Cualquiera puede decodificar un Base64 al instante, sin clave ni contraseña.

Es un error muy común pensar que «codificar en Base64» oculta o protege la información. No es así: no hay ningún secreto, solo una forma distinta de escribir los mismos datos. Por eso nunca debes usar Base64 para guardar contraseñas, tokens privados o datos sensibles creyendo que están seguros.

La confusión aparece a menudo con los tokens JWT, cuyas partes están en Base64 URL-safe: se leen sin problema, no están cifradas. Si necesitas seguridad real, usa cifrado (AES, RSA) o funciones hash, no Base64.

UTF-8, acentos y emojis

Aquí es donde fallan muchas herramientas. La función btoa() del navegador solo entiende caracteres Latin-1, así que se rompe o corrompe el resultado en cuanto aparece una ñ, una ç, una tilde o un emoji.

Esta herramienta convierte primero el texto a bytes UTF-8 con TextEncoder y luego a Base64, de modo que cualquier carácter (español, portugués, chino, emoji) se codifica y se recupera exacto. Si trabajas con datos antiguos que usan Latin-1 (ISO-8859-1), puedes elegir esa codificación en las opciones.

Base64 URL-safe (base64url)

El Base64 estándar usa los caracteres «+» y «/», que tienen un significado especial en las URLs y en los nombres de archivo. La variante URL-safe (base64url, RFC 4648) los sustituye por «-» y «_» y elimina el relleno «=», para que el resultado se pueda pegar en una dirección web sin romperla.

Es el formato que usan las partes de un token JWT. Activa la casilla «URL-safe» para generarlo; al decodificar, la herramienta acepta automáticamente tanto el estándar como el URL-safe, así que no tienes que preocuparte por cuál te han pasado.

Para qué se usa Base64

  • Data URI: incrustar una imagen directamente en el CSS o el HTML (data:image/png;base64,…) para evitar una petición extra.
  • Autenticación básica (Basic Auth): el usuario y la contraseña se envían en Base64 en la cabecera HTTP (por eso conviene usar siempre HTTPS).
  • Correo y MIME: los adjuntos de un email viajan en Base64.
  • Tokens JWT: la cabecera y el cuerpo son Base64 URL-safe.
  • APIs y JSON/XML: guardar datos binarios dentro de un texto sin que se corrompan.

Si trabajas con otras codificaciones, tienes también nuestro conversor de texto a binario el traductor de código morse y el codificador de URL.

Preguntas frecuentes

¿Base64 es un cifrado o encripta mi texto?
No. Base64 es una codificación, no un cifrado. No oculta ni protege la información: cualquiera puede decodificarla al instante. No lo uses nunca para guardar contraseñas ni datos sensibles como si fueran seguros.
¿Funciona con ñ, acentos y emojis?
Sí. A diferencia de muchas herramientas que usan btoa y se rompen con caracteres no ingleses, esta procesa el texto como UTF-8, así que la ñ, la ç, las tildes y los emojis se codifican y decodifican correctamente.
¿Qué es el Base64 URL-safe (base64url)?
Es una variante que sustituye los caracteres «+» y «/» por «-» y «_» y quita el relleno «=», para poder usar el resultado en URLs y nombres de archivo sin problemas. Es el formato de las partes de un token JWT. Al decodificar, esta herramienta acepta ambas variantes automáticamente. Si lo que necesitas es codificar la URL en sí y no su contenido, usa el codificador de URL.
¿Se sube mi texto o mi archivo a algún servidor?
No. Todo el proceso, incluidos los archivos, ocurre en tu navegador con FileReader; nada se envía a ningún servidor. Por eso puedes codificar información sensible con tranquilidad.
¿Puedo convertir una imagen a Base64?
Sí. Sube un archivo en el modo «Codificar» y obtendrás su Base64 y su Data URI (data:image/...;base64,...), listo para incrustar en CSS o HTML. Al decodificar un Data URI de imagen, se muestra una vista previa.
¿Por qué me da error al decodificar?
Base64 solo admite letras, números y los símbolos +/ (o -_ en URL-safe) con una longitud múltiplo de 4. Si el texto tiene otros caracteres o está incompleto, no es un Base64 válido y la herramienta te avisa.