Codificar / Decodificar Base64

Codifica o decodifica texto usando Base64.

...

Qué hace Base64 en realidad

Base64 representa bytes arbitrarios usando solo 64 caracteres ASCII seguros (A–Z, a–z, 0–9, +, /, más = para el relleno). Cada 3 bytes de entrada se convierten en 4 caracteres de salida, así que los datos codificados son alrededor de un 33 % más grandes que el original. Existe para que datos binarios o de caracteres especiales puedan viajar por canales que solo manejan texto plano: cuerpos de correo, cadenas JSON, atributos HTML, cabeceras HTTP.

Ejemplo concreto: Hello World se codifica como SGVsbG8gV29ybGQ=. El = final es relleno que marca como incompleto el último grupo de 3 bytes: los decodificadores lo necesitan para saber dónde terminan los datos.

Soporte completo de UTF-8

La función btoa() en crudo del navegador se atraganta con cualquier cosa fuera de Latin-1: intenta codificar un emoji con ella y obtienes un error de "characters outside of the Latin1 range". Esta herramienta convierte tu texto a bytes UTF-8 primero, así que café, 日本語 y 🚀 se codifican y decodifican de ida y vuelta correctamente. café se convierte en Y2Fmw6k= (5 bytes, porque é ocupa dos bytes en UTF-8), y decodificar Y2Fmw6k= te devuelve café exactamente.

Usos habituales

  • Data URIs: incrustar imágenes o fuentes pequeñas directamente en CSS/HTML como data:image/png;base64,….
  • Autenticación básica HTTP: la cabecera Authorization lleva user:password codificado en Base64.
  • Tokens JWT: cada uno de los tres segmentos separados por puntos es JSON codificado en Base64url; decodifica uno para inspeccionar sus reclamaciones.
  • Binario en JSON/XML: el contenido de archivos, las claves y los certificados se envían de forma rutinaria como cadenas Base64 en las API.

Base64 no es cifrado

Esta es la trampa que vale la pena repetir: Base64 es una codificación, no un cifrado. No hay ninguna clave: cualquiera puede decodificarlo al instante, como puedes comprobar con esta misma herramienta. Nunca trates Base64 como una forma de ocultar contraseñas o secretos. Si necesitas comprobaciones de integridad, usa el generador de hash; si lo que necesitas es un secreto fuerte de partida, usa el generador de contraseñas. Y ten en cuenta que el Base64 estándar usa + y /, que no son seguros dentro de las URL: pasa la salida codificada por el codificador de URL antes de ponerla en una cadena de consulta. Como todas las herramientas de aquí, la codificación y la decodificación corren por completo en tu navegador; no se envía nada a ningún servidor.

Preguntas frecuentes

¿Qué es la codificación Base64?
Un esquema que representa bytes arbitrarios con 64 caracteres ASCII seguros, para que datos binarios o de caracteres especiales puedan pasar por canales de solo texto como el correo, JSON o las cabeceras HTTP. "Hello World" se codifica como "SGVsbG8gV29ybGQ=".
¿Base64 es cifrado?
No. No hay ninguna clave: cualquiera puede decodificar una cadena Base64 al instante. Cambia la representación, no el secreto. Nunca lo uses para proteger contraseñas o datos sensibles.
¿Por qué la salida codificada termina en signos =?
Relleno. Base64 procesa la entrada en grupos de 3 bytes; cuando el último grupo tiene solo 1 o 2 bytes, uno o dos caracteres = rellenan el hueco para que los decodificadores conozcan la longitud real.
¿Puedo codificar emoji y texto no inglés?
Sí. La herramienta convierte el texto a bytes UTF-8 antes de codificar, así que los emoji, los acentos y los caracteres CJK van de ida y vuelta correctamente, al contrario que el btoa() en crudo del navegador, que falla con ellos.
¿Cuánto más grande es la salida Base64?
Alrededor de un 33 %: cada 3 bytes de entrada se convierten en 4 caracteres de salida, más hasta 2 caracteres de relleno. 1 MB de datos se convierte en aproximadamente 1,37 MB codificados.