Codificación / Decodificación Base64/ Del lado del cliente

Convierte texto a Base64 y viceversa. Soporte completo de Unicode, modo URL seguro, sin envíos al servidor.

Texto plano
Salida Base64
El resultado aparecerá aquí…
Entrada0 car.
Salida0 car.

¿Esta herramienta resolvió tu problema?

¿Qué es la codificación Base64

Base64 es un esquema de codificación que representa datos binarios usando 64 caracteres ASCII imprimibles. Codifica每 3 bytes (24 bits) en 4 caracteres, usando solo A-Z, a-z, 0-9, +, / y el carácter de relleno =. Base64 NO es un algoritmo de cifrado — es un formato de codificación que cualquiera puede decodificar fácilmente, sin提供 seguridad alguna.

Usos comunes de Base64

Archivos adjuntos de correo: el protocolo MIME usa Base64 para adjuntos binarios. Data URLs: incrustar imágenes, fuentes y otros recursos直接 en CSS o HTML para减少 peticiones HTTP. Transmisión API: codificar datos binarios (imágenes, PDF) en JSON como cadenas Base64. Tokens JWT: las cabeceras y payloads de los JWT son JSON codificados en Base64. Autenticación Basic: HTTP Basic Auth codifica usuario:contraseña como Base64.

¿Cuánto aumenta el tamaño del archivo con Base64

La codificación Base64增加 el tamaño de los datos about un 33%. Como每 3 bytes原 se convierten en 4 caracteres, el tamaño codificado = ceil(tamaño original / 3) × 4. Para archivos grandes, la transmisión binaria直接 es por lo tanto más eficiente. Pero cuando necesitas传输 datos binarios a través de un canal de solo texto (JSON, XML, URLs), Base64 es la solución estándar.

Ejemplos de código

JavaScript (Browser)
// Encode (ASCII only)
const encoded = btoa("Hello, World!");
// Decode
const decoded = atob(encoded);

// Encode Unicode (CJK, emoji, etc.)
function b64Encode(str) {
  const bytes = new TextEncoder().encode(str);
  const bin = String.fromCharCode(...bytes);
  return btoa(bin);
}
function b64Decode(b64) {
  const bin = atob(b64);
  const bytes = Uint8Array.from(bin, c => c.charCodeAt(0));
  return new TextDecoder().decode(bytes);
}
Python
import base64

# Encode
text = "Hello, 世界 🌏"
encoded = base64.b64encode(text.encode("utf-8")).decode()
print(encoded)

# Decode
decoded = base64.b64decode(encoded).decode("utf-8")
print(decoded)

# URL-safe variant
url_safe = base64.urlsafe_b64encode(
    text.encode("utf-8")
).decode().rstrip("=")
Go
import "encoding/base64"

// Encode
encoded := base64.StdEncoding.
    EncodeToString([]byte("Hello, World!"))

// Decode
decoded, err := base64.StdEncoding.
    DecodeString(encoded)

// URL-safe
urlSafe := base64.URLEncoding.
    EncodeToString([]byte("Hello, World!"))
Shell (curl / openssl)
# Encode
echo -n "Hello, World!" | base64

# Decode
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d

# URL-safe encode (GNU coreutils)
echo -n "Hello" | base64 | tr '+/' '-_' | tr -d '='

Preguntas frecuentes

¿Qué es Base64?
Base64 es un esquema de codificación que convierte datos binarios en texto ASCII utilizando 64 caracteres imprimibles (A–Z, a–z, 0–9, +, /). Se usa ampliamente para transmitir datos binarios (imágenes, archivos) a través de protocolos basados en texto como HTTP, correo electrónico y JSON.
¿La codificación Base64 es lo mismo que el cifrado?
No. Base64 es codificación, no cifrado. Cualquiera puede decodificarlo al instante — no hay clave ni secreto involucrado. Para la seguridad de datos, use un algoritmo de cifrado como AES o RSA.
¿Cuál es la diferencia entre Base64 y base64url?
El Base64 estándar usa + y / que requieren escape en URL (%2B y %2F), además de relleno con =. base64url reemplaza + por -, / por _, y elimina los = finales, lo que permite usarlo directamente en URL y nombres de archivo. Los tokens JWT usan base64url para el encabezado y la carga útil.
¿Por qué Base64 aumenta el tamaño de los datos?
Base64 representa cada 3 bytes de datos binarios como 4 caracteres ASCII, aumentando el tamaño codificado a ~133% del original — aproximadamente un 33% más. Este es el costo de representar datos binarios como texto plano.
¿Cómo uso Base64 en JavaScript?
Los navegadores proporcionan btoa() (codificar) y atob() (decodificar). Sin embargo, no manejan Unicode de forma nativa; para cadenas con caracteres no latinos, primero codifique a bytes UTF-8 mediante TextEncoder. Esta herramienta maneja Unicode correctamente.
¿Están seguros mis datos?
Sí. Esta herramienta se ejecuta completamente en su navegador sin solicitudes de red — sus datos nunca salen de su dispositivo. No dude en pegar texto sensible para pruebas.