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
Authorizationllevauser:passwordcodificado 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.