Base64 Encoder / Decoder

Codifica y decodifica cadenas en Base64 con soporte para UTF-8.

sys-dev-toolkit.lovable.app/herramientas/base64

Herramienta

Qué problema resuelve

Necesitas transportar datos binarios o cadenas UTF-8 a través de canales que sólo aceptan ASCII.

Base64 es una codificación binaria a texto ASCII que convierte cualquier cadena de bytes en 64 caracteres seguros (A-Z, a-z, 0-9, + y /). Se usa cuando necesitas transportar datos binarios por canales que sólo aceptan texto: correos electrónicos, URLs, cabeceras HTTP, JSON, tokens JWT o data URLs en HTML/CSS. Este codificador y decodificador Base64 procesa UTF-8 correctamente y funciona 100 % en tu navegador.

Cómo funciona Base64

Base64 toma la entrada en grupos de 3 bytes (24 bits) y los reagrupa en 4 caracteres de 6 bits, mapeando cada bloque de 6 bits a uno de los 64 símbolos del alfabeto. Al final añade `=` como padding cuando la longitud no es múltiplo de 3. El resultado es ~33 % más largo que el original: no es compresión, sino cambio de codificación.

Base64 estándar vs Base64URL

El Base64 estándar usa `+` y `/`, que no son seguros en URLs porque tienen significado especial. Base64URL (RFC 4648) los sustituye por `-` y `_` y elimina el padding. Es el que usan JWT, JWE y muchas APIs modernas. Convierte entre ambos con simples reemplazos.

UTF-8 y el problema con caracteres no-ASCII

btoa() en JavaScript sólo acepta ASCII; con acentos o emojis explota. La solución es codificar primero a UTF-8 con TextEncoder y luego a Base64, que es lo que hace esta herramienta. Al decodificar hacemos el proceso inverso con TextDecoder para no perder caracteres.

No confundas codificación con cifrado

Base64 NO es cifrado: cualquiera puede decodificarlo. Nunca uses Base64 para 'ocultar' contraseñas o tokens sensibles: es equivalente a texto plano. Su propósito es exclusivamente de transporte.

Casos de uso comunes

  • Embeber imágenes pequeñas como data URLs en CSS.
  • Enviar binarios (adjuntos) por email con MIME.
  • Codificar credenciales HTTP Basic Auth en la cabecera Authorization.
  • Leer o construir los tres bloques de un JWT.

Buenas prácticas

  • Usa Base64URL en URLs y JWTs.
  • No embebas binarios grandes en JSON o HTML: cuesta un 33 % en tamaño.
  • Nunca uses Base64 como mecanismo de seguridad.
  • Verifica que emisor y receptor usen el mismo alfabeto (estándar vs URL).