Codificador y decodificador Base64

Codifica y decodifica Base64: texto, archivos, URL-safe y data URI con vista previa.

Qué hace esta herramienta

Base64 es una forma de escribir cualquier dato, texto o binario, usando solo 64 caracteres seguros: letras, dígitos, el signo más y la barra. Existe porque muchos sistemas que transportan datos, como el correo, JSON, las URL o los atributos HTML, solo admiten texto simple. Esta herramienta convierte en los dos sentidos. Codificar toma el texto que escribes o un archivo que abres; Decodificar toma Base64 y devuelve el texto, o el archivo cuando no es texto. Todo ocurre en tu navegador, así que una clave privada, un token o un documento no se suben nunca.

Cómo se usa

  1. Elige Codificar o Decodificar.
  2. Escribe o pega, pulsa "Abrir un archivo" o suelta un archivo en la página. El resultado aparece mientras escribes.
  3. Copia el resultado o descárgalo. "Usar como entrada" lo pasa a la otra pestaña, una forma rápida de comprobar que ida y vuelta dan el original.

Al decodificar no hace falta limpiar el texto. Se ignoran espacios y saltos de línea, se añade el = final que falte, se aceptan las letras URL-safe - y _ y se desenvuelve un data: URI completo. La herramienta indica qué hizo. Si el texto no es Base64, te dice qué carácter falla y dónde.

UTF-8 y la trampa de las tildes

Base64 codifica bytes, no letras, así que el texto primero debe convertirse en bytes. Aquí se usa UTF-8, la codificación de la web. La palabra café son los cinco bytes 63 61 66 c3 a9 y su Base64 es Y2Fmw6k=. Un error habitual es pasar ese texto a la antigua función btoa del navegador, que trata cada carácter como un byte: da Y2Fm6Q==, que otros sistemas leen como "caf" y un byte inválido, o rechazan si hay caracteres como Việt o emoji. El texto "Hello, Việt Nam! 😀 café" se codifica como SGVsbG8sIFZp4buHdCBOYW0hIPCfmIAgY2Fmw6k= y se decodifica sin cambios.

Estándar, URL-safe, relleno y longitud de línea

  • Estándar usa + y /, que tienen significado en una URL. Para una URL, un nombre de archivo o un JWT elige URL-safe, que escribe - y _. Los bytes fb ff fe ff son +//+/w== en estándar y -__-_w== en URL-safe.
  • Relleno añade = hasta un múltiplo de cuatro. Muchos usos URL-safe, como las tres partes de un JWT, lo omiten; desactívalo. La cabecera {"alg":"HS256","typ":"JWT"} es eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9, sin relleno.
  • Longitud de línea parte la salida en líneas de 64 caracteres (PEM, en certificados y claves) o de 76 (MIME, en adjuntos de correo). Para el resto, una sola línea.

Archivos, imágenes y data URI

Abre cualquier archivo para codificarlo, hasta 20 MB. Activa Como data: URI para obtener un valor listo para pegar como data:image/png;base64,iVBOR…, útil como origen de un <img> o en url() de CSS. Sirve para un icono pequeño, pero aumenta el tamaño un tercio y el navegador no puede guardarlo en caché por separado, así que para más de unos kilobytes es mejor un archivo normal; el kit de imágenes puede reducir antes la imagen. Si lo decodificado es una imagen verás una vista previa, y lo que no sea texto, como una imagen, un PDF o un ZIP, se ofrece para descargar con la extensión correcta.

Conviene saber

  • Base64 no es cifrado. Cualquiera lo decodifica; no lo uses para ocultar secretos. Para comprobar que un archivo no cambió, usa el comprobador de hash.
  • Aumenta el tamaño. Cada 3 bytes pasan a 4 caracteres, un 33 % más; 1000 bytes son 1336 caracteres con relleno.

Preguntas frecuentes

¿Base64 es una forma de cifrado?

No. Es solo una forma de escribir bytes como texto y cualquiera puede revertirla. No lo uses para proteger contraseñas ni secretos.

¿Por qué el texto decodificado sale mal o con caracteres raros?

Quizá el original se codificó con un juego de caracteres distinto de UTF-8, o los datos no son texto. La herramienta lee el resultado como UTF-8 y ofrece descargar cuando los bytes no son texto válido.

¿Qué diferencia hay entre Base64 y Base64URL?

Base64URL cambia + por - y / por _ para ser seguro en URL y nombres de archivo, y suele omitir el relleno =. Los JWT lo usan. La herramienta lee ambos al decodificar y escribe cualquiera al codificar.

¿Se suben mis archivos?

No. La página lee y convierte el archivo en tu navegador y no envía nada a ningún sitio.