Codificador/Decodificador Base64

Un codificador/decodificador Base64 online gratuito para una codificación y decodificación rápidas, que incluye manejo seguro de UTF-8, conversión segura para URLs, relleno automático, estadísticas en tiempo real y funcionalidad de copia segura. Ofrece ejemplos de código multilingües, generación de Data URI, guías de uso detalladas y preguntas frecuentes. Interfaz fácil de usar con entrada bidireccional, accesibilidad por teclado y diseño adaptable a móviles. No requiere descargas, funciona directamente en su navegador.

Codificar (Texto → Base64)

Decodificar (Base64 → Texto)

Cómo usar

Base64 codifica datos binarios en ASCII para una transmisión y almacenamiento seguros. El tamaño aumenta aproximadamente un 33%.
Codificar: Convierte texto plano a Base64 para una transmisión segura.
Decodificar: Restaura el texto original desde una cadena Base64.

Características

  • Compatible con UTF-8: Maneja correctamente caracteres no ASCII (envuelto con encodeURIComponent/unescape).
  • Soporte seguro para URL: Cambio de un clic entre + / → - _, con opción de eliminar el relleno =.
  • Preprocesamiento antes de decodificar: Ignora espacios en blanco, convierte automáticamente al formato seguro para URL y añade relleno =.
  • Interacción en tiempo real: La entrada se procesa instantáneamente, mostrando estadísticas de longitud y tasa de crecimiento.
  • Usabilidad: Copia rápida, relleno bidireccional entre entradas, accesible por teclado y compatible con móviles.
  • Tema consistente: Sin clases dark: de Tailwind — estilizado completamente con temas de DaisyUI.

Ejemplos rápidos

Texto original:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

¿Qué es Base64?

Base64 es un método para codificar datos binarios en texto ASCII, comúnmente usado para transmitir imágenes o contenido de archivos mediante protocolos basados en texto como JSON, XML y HTTP.

Mapea cada 3 bytes en 4 caracteres imprimibles, lo que generalmente resulta en un aumento del tamaño de aproximadamente un 33%.

El Base64 estándar utiliza A–Z, a–z, 0–9, +, /, y el carácter de relleno =; la variante segura para URL reemplaza + y / por - y _ para evitar problemas de escape en URLs.

Casos de uso comunes

  • Insertar imágenes o archivos pequeños como Data URIs.
  • Transferir datos binarios entre cliente y servidor (p. ej., textos cifrados, flujos comprimidos).
  • Convertir texto a un formato imprimible para evitar inconsistencias de codificación o caracteres invisibles.

Preguntas frecuentes y notas importantes

  • Conjunto de caracteres: En entornos web, primero codifica el texto como UTF-8 (esta herramienta incluye este paso automáticamente).
  • Seguro para URL: Para parámetros o rutas de URL, prefiere la variante segura para URL y considera eliminar los caracteres de relleno.
  • Relleno: Algunas implementaciones permiten omitir =; durante la decodificación, añade relleno automáticamente hasta un múltiplo de 4 caracteres.
  • Saltos de línea: El Base64 MIME puede incluir saltos de línea; selecciona "Ignorar espacios en blanco" durante la decodificación para manejarlos.

Cómo codificar/decodificar Base64 en lenguajes de programación

JavaScript
Texto → Base64 (seguro con UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Seguro para URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decodificar (Base64 → Texto)
// Preprocesar: Reemplazar -_ por +/
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
Codificar (Texto → Base64)
$encoded = base64_encode($text);
// Seguro para URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
Decodificar (Base64 → Texto)
$b64 = strtr($input, '-_', '+/');
// Rellenado automático con '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
Codificar (Texto → Base64)
import base64

encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# Codificación segura para URL (sin relleno)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
Decodificar (Base64 → Texto)
import base64

def b64_decode(s: str) -> str:
    s = s.replace('-','+').replace('_','/')
    s += '=' * (-len(s) % 4)  # Rellenado automático con '='
    return base64.b64decode(s).decode('utf-8')
Go
Codificar (Texto → Base64)
import (
    "encoding/base64"
)

enc := base64.StdEncoding.EncodeToString([]byte(text))
// Codificación segura para URL (sin relleno)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
Decodificar (Base64 → Texto)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// Decodificación segura para URL (sin relleno)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
Codificar (Texto → Base64)
use base64::{engine::general_purpose, Engine as _};

let enc = general_purpose::STANDARD.encode(text.as_bytes());
// Codificación segura para URL (sin relleno)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
Decodificar (Base64 → Texto)
use base64::{engine::general_purpose, Engine as _};

let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();

let url_dec = String::from_utf8(
    general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
Dependencia de Cargo: base64 = "0.22"
Java
Codificar (Texto → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// Codificación segura para URL (sin relleno)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
Decodificar (Base64 → Texto)
import java.nio.charset.StandardCharsets;
import java.util.Base64;

String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);

Ejemplos de Data URI

Insertar imágenes o archivos pequeños como Data URIs:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Nota: Evite usar Data URIs para archivos grandes, ya que aumentan significativamente el tamaño de HTML/JSON y degradan el rendimiento.