Guía de herramienta
Cómo usar Base64
Qué es Base64, por qué NO es cifrado, cómo funciona el alfabeto y sus casos de uso prácticos en el desarrollo web.
¿Qué es Base64?
Base64 es un esquema de codificación (no cifrado) que convierte datos binarios en texto ASCII usando un alfabeto de 64 caracteres. Se usa principalmente cuando necesitas transmitir datos binarios por canales que solo soportan texto.
Base64 NO es cifrado. Cualquier persona puede decodificar un string en Base64 sin ninguna clave. No uses Base64 para "proteger" información sensible — solo úsalo para codificación de formato.
El alfabeto Base64
Base64 usa 64 caracteres: las 26 letras mayúsculas, 26 minúsculas, los dígitos 0-9, y los símbolos + y /. El carácter = se usa como padding.
Cómo funciona la codificación
Base64 toma grupos de 3 bytes (24 bits) y los convierte en 4 caracteres del alfabeto (6 bits cada uno). Por eso un texto codificado en Base64 es aproximadamente un 33% más largo que el original.
"Hola"→SG9sYQ==Texto:"MeshiCode"→TWVzaGlDb2RlCasos de uso
Incrustar imágenes directamente en HTML/CSS sin archivos externos.
<img src="data:image/png;base64,iVBORw0KGgo..." />El esquema HTTP Basic Auth codifica usuario:contraseña en Base64.
Authorization: Basic dXN1YXJpbzpjb250cmFzZW5hCg==Enviar archivos binarios (PDF, imágenes) en JSON o XML donde solo se permite texto.
{ "archivo": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBv..." }Cómo usar en JavaScript
En el navegador: btoa() y atob()
"color:rgba(255,255,255,0.35)">// Codificar (text → Base64)
const texto = "Hola, MeshiCode!";
const codificado = btoa(texto);
console.log(codificado); "color:rgba(255,255,255,0.35)">// "SG9sYSwgTWVzaGlDb2RlIQ=="
"color:rgba(255,255,255,0.35)">// Decodificar (Base64 → text)
const decodificado = atob(codificado);
console.log(decodificado); "color:rgba(255,255,255,0.35)">// "Hola, MeshiCode!"
"color:rgba(255,255,255,0.35)">// Importante: btoa() solo acepta caracteres Latin-1
"color:rgba(255,255,255,0.35)">// Para Unicode usa encodeURIComponent primero:
const textoUnicode = "Año nuevo 🎉";
const encoded = btoa(encodeURIComponent(textoUnicode));
const decoded = decodeURIComponent(atob(encoded));En Node.js: Buffer
"color:rgba(255,255,255,0.35)">// Codificar
const texto = "Hola, MeshiCode!";
const codificado = Buffer.from(texto, "utf-8").toString("base64");
console.log(codificado); "color:rgba(255,255,255,0.35)">// "SG9sYSwgTWVzaGlDb2RlIQ=="
"color:rgba(255,255,255,0.35)">// Decodificar
const decodificado = Buffer.from(codificado, "base64").toString("utf-8");
console.log(decodificado); "color:rgba(255,255,255,0.35)">// "Hola, MeshiCode!"
"color:rgba(255,255,255,0.35)">// Codificar un archivo binario
import { readFileSync } from "fs";
const imagen = readFileSync("./foto.jpg");
const imagenBase64 = imagen.toString("base64");
const dataURL = `data:image/jpeg;base64,${imagenBase64}`;Base64url (variante para URLs)
"color:rgba(255,255,255,0.35)">// Base64 estándar → Base64url (seguro para URLs)
function toBase64url(base64) {
return base64.replace(/\+/g, "-").replace(/\"color:rgba(255,255,255,0.35)">//g, "_").replace(/=+$/, "");
}
"color:rgba(255,255,255,0.35)">// Base64url → Base64 estándar
function fromBase64url(base64url) {
const padding = "=".repeat((4 - (base64url.length % 4)) % 4);
return (base64url + padding).replace(/-/g, "+").replace(/_/g, "/");
}Herramienta relacionada
Codificador Base64
Codifica y decodifica texto o archivos en Base64 directamente en el navegador. Sin servidores, sin límites.
Abrir codificador Base64 →