Base64 Encoder and Decoder
A free online Base64 encoder and decoder that quickly encodes and decodes Base64, with convenient features like UTF-8 support, secure copy, and clear.
Codificar (texto → Base64)
Decodificar (Base64 → texto)
Instrucciones de uso
Base64 codifica datos binarios en ASCII para su transmisión y almacenamiento. El tamaño aumenta aproximadamente un 33%.
Codificación: convierte texto plano en Base64 para una transmisión más segura.
Decodificación: recupera el texto original desde una cadena Base64.
Características
- Seguro para UTF-8: maneja correctamente caracteres no ASCII (envolviendo con encodeURIComponent/unescape).
- Soporte URL-seguro: cambia automáticamente + / por - _, opcionalmente elimina el relleno =.
- Procesamiento previo a la decodificación: ignora espacios, restaura automáticamente URL-seguro y completa = si es necesario.
- Interactividad en tiempo real: procesamiento automático al ingresar, muestra estadísticas de longitud y crecimiento.
- Usabilidad: copiado rápido, relleno cruzado de resultados, accesible por teclado y optimizado para móviles.
- Estilo uniforme: sin clases dark: de Tailwind, completamente basado en DaisyUI.
¿Qué es Base64?
Base64 es un método para codificar datos binarios como texto ASCII, comúnmente utilizado para transmitir imágenes o contenidos de archivos en protocolos de texto como JSON, XML o HTTP.
Convierte cada 3 bytes en 4 caracteres imprimibles, lo que generalmente aumenta el tamaño aproximadamente un 33%.
Base64 estándar utiliza A–Z a–z 0–9 + / y el carácter de relleno =; la variante segura para URL sustituye + y / por - y _, evitando problemas de escape en URLs.
Usos comunes
- Incrustar imágenes o archivos pequeños como Data URI.
- Transferir datos binarios entre cliente y servidor (como textos cifrados o flujos comprimidos).
- Convertir texto a formato imprimible para evitar problemas de codificación inconsistente o caracteres invisibles.
Preguntas frecuentes y notas importantes
- Conjunto de caracteres: En entornos web, primero procesa el texto en UTF-8 (esta herramienta ya lo incluye).
- Seguro para URL: Para parámetros o rutas URL, se recomienda usar la variante segura para URL y considerar eliminar los caracteres de relleno.
- Relleno: Algunas implementaciones permiten omitir el =; al decodificar, debe completarse automáticamente hasta múltiplos de 4.
- Saltos de línea: Base64 MIME puede incluir saltos de línea; al decodificar, marca "ignorar caracteres en blanco".
Cómo realizar codificación y decodificación Base64 mediante lenguajes de programación
JavaScript
Texto → Base64 (seguro UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// Seguro para URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
Decodificar (Base64 → Texto)
// Preprocesamiento: 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, '-_', '+/');
// Completar automáticamente '='
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) # Completar automáticamente '='
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 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);