Codificador / Decodificador Base64

Los desarrolladores se encuentran a diario con tareas de codificar y decodificar Base64: los URI de datos de imágenes, las cargas de API y los archivos adjuntos dependen de ello. Hacerlo a mano, o con una herramienta poco fiable, suele provocar relleno roto, archivos corruptos o una salida ilegible. Un solo carácter incorrecto en una cadena codificada rompe toda la carga. Encontrar ese error hace perder tiempo que podría dedicarse a sacar trabajo en producción.

Este codificador y decodificador Base64 gratuito maneja texto, archivos e imágenes directamente en tu navegador. No hay subida al servidor, no hace falta registrarse y ningún dato sale de tu dispositivo. Cambia entre codificar y decodificar al instante, activa el modo seguro para URL o el salto MIME por línea, y valida cualquier cadena Base64 con el Validador integrado. Sea lo que sea que estés construyendo, este convertidor Base64 acierta a la primera.

100 % del lado del cliente
No se envían datos a servidores
Procesamiento en tiempo real
Soporte para imágenes, archivos y texto

Conversión Base64

Seguro para URL (Base64URL)
Salto MIME cada 76 caracteres

¿Qué es la codificación Base64?

La codificación Base64 es un esquema de binario a texto que convierte datos binarios en 64 caracteres ASCII imprimibles. Bytes sin procesar, imágenes, archivos, claves de cifrado, cualquier cosa, pasan a ser una cadena compuesta por A-Z, a-z, 0-9, además de "+" y "/". También verás que se le llama base 64 encoding. A la herramienta en sí se la suele nombrar igualmente como codificador o decodificador base 64.

La decodificación Base64 invierte el proceso y convierte esa cadena de texto de vuelta en los bytes originales exactos. Los datos codificados de este modo se mantienen intactos durante el transporte, la garantía que convirtió a Base64 en el estándar para archivos adjuntos de correo y cargas HTTP. Esa reversibilidad es también la razón exacta por la que Base64 no es cifrado, una diferencia que se explica con detalle más adelante en esta guía.

Cómo funciona la codificación Base64

Base64 funciona agrupando los datos de entrada en bloques de 3 bytes (24 bits) y luego redividiendo cada bloque en cuatro grupos de 6 bits. Cada grupo de 6 bits contiene un valor de 0 a 63, que corresponde directamente a uno de los 64 caracteres del alfabeto Base64. Cuando el último bloque tiene menos de 3 bytes, el relleno "=" completa el hueco. Así se mantiene la longitud de salida como múltiplo de 4.

Aquí tienes un ejemplo real: codificar la palabra "Cat" en ASCII. Los 24 bits se reorganizan en cuatro valores de 6 bits y luego se asignan a caracteres Base64. La tabla de abajo muestra la conversión completa, byte por byte, para que veas exactamente cómo funciona la lógica.

Elemento
C
a
t
Valor ASCII6797116
Binario de 8 bits010000110110000101110100
Reagrupado en cuatro grupos de 6 bits010000110110000101 / 110100
Valor decimal16545 / 52
Carácter Base64Q2F / 0

Resultado:CatQ2F0

Cada 3 bytes de entrada se convierten exactamente en 4 caracteres Base64. Por eso la salida Base64 es siempre alrededor de un 33 % más grande que los datos originales. Este proceso está definido formalmente en el RFC 4648, el estándar de Internet que cubre tanto Base64 como el alfabeto Base64URL. Ese sobrecoste es el intercambio por una compatibilidad garantizada; MIME limita además las líneas Base64 a 76 caracteres para sistemas de correo.

Cómo usar este codificador/decodificador Base64

Este codificador y decodificador Base64 está pensado para ser rápido: no necesitas crear una cuenta ni instalar software. Cuatro pestañas cubren todos los casos de uso: Texto, Archivo, Imagen y Validador Base64 para comprobar una cadena antes de decodificarla. Todo se procesa localmente en tu navegador, lo que significa que tus datos nunca tocan un servidor.

  • Elige una pestaña: Texto para cadenas, Archivo para archivos binarios (codificar o decodificar), Imagen para PNG/JPEG/GIF/SVG/WebP, o Validador Base64 para verificar una cadena.
  • En las pestañas Texto e Imagen, selecciona Codificar o Decodificar con los botones de opción.
  • Pega tu texto o cadena Base64 en el cuadro de entrada, o arrastra y suelta un archivo o imagen en la zona de carga.
  • Activa Seguro para URL (Base64URL) para tokens y URL, o Salto MIME cada 76 caracteres para salida de correo (pestañas Texto y Archivo).
  • Haz clic en Codificar, Decodificar o Validar y el resultado, la vista previa o el estado de validación aparecerán al instante.

Cuando haces clic en Codificar o Decodificar, el cuadro de salida se actualiza al instante con el resultado. El texto codificado siempre se compone de A-Z, a-z, 0-9, además de "+", "/" y el relleno "=". Si ves otros caracteres, la entrada no era Base64 válida; usa la pestaña Validador para confirmarlo antes de decodificar. Decodificar de vuelta a texto legible, un proceso llamado conversión de base64 a texto, funciona igual: pega, haz clic en Decodificar y copia.

Ejemplos prácticos

Los ejemplos genéricos de una sola palabra no muestran cómo se comportan codificar y decodificar Base64 con entradas reales. La tabla siguiente recorre cinco escenarios comunes, desde una cadena corta hasta un segmento de token seguro para URL. Así sabrás exactamente qué esperar con tus propios datos. Todos los ejemplos de abajo usan el alfabeto Base64 estándar con entrada UTF-8, que es el valor predeterminado de esta herramienta.

Escenario
Entrada
Salida Base64
Texto simpleHelloSGVsbG8=
Carga JSON{"id":1}eyJpZCI6MX0=
Caracteres especiales / acentoscafé!Y2Fmw6kh
Segmento de token seguro para URL (Base64URL, sin relleno){"sub":"123"}eyJzdWIiOiIxMjMifQ
Imagen (PNG, truncado para mostrar)bytes binarios PNGdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

Fíjate en que el ejemplo seguro para URL usa codificación Base64URL sin relleno "=", mientras que el ejemplo JSON usa Base64 estándar con el relleno intacto. Base64URL reemplaza "+" por "-" y "/" por "_" precisamente por eso. Viaja de forma segura dentro de URL, cookies y encabezados HTTP, donde "+" y "/" pueden causar problemas. Por eso los tokens de autenticación, identificadores de sesión y otros datos incrustados en URL casi siempre usan la variante segura para URL.

Convertir Base64 a imagen e imagen a Base64

Las imágenes son un caso de uso muy común de Base64. Los desarrolladores las codifican en Base64 para incrustarlas directamente en CSS, HTML o JSON sin hacer una solicitud de archivo separada. Sube una imagen para obtener un URI de datos Base64, o pega una cadena Base64 para descargar el resultado decodificado. Los formatos compatibles son PNG, JPEG, GIF, SVG y WebP.

Convertir una imagen a Base64 genera un URI de datos como data:image/png;base64,iVBORw0KGgo... que puedes colocar directamente en un atributo src o en la propiedad CSS background-image. Convertir Base64 de vuelta a imagen funciona al revés. Pega la cadena codificada y la herramienta la decodifica, muestra una vista previa en vivo y te ofrece una descarga con un solo clic. Este recorrido de ida y vuelta es especialmente útil cuando una respuesta de API devuelve datos de imagen como una cadena Base64 en lugar de un archivo binario.

Base64 en código: JavaScript, Python y Go

La mayoría de los desarrolladores no necesitan solo una conversión puntual; necesitan reproducir la misma lógica Base64 dentro de su propia aplicación. Los fragmentos de abajo cubren los tres lenguajes más habituales para codificar y decodificar texto. Cada ejemplo usa "Hello, world!", con una salida que coincide con la que produce esta herramienta.

JavaScript (navegador)

// Encode
const encoded = btoa("Hello, world!");
console.log(encoded); // SGVsbG8sIHdvcmxkIQ==

// Decode
const decoded = atob(encoded);
console.log(decoded); // Hello, world!

Python

import base64

encoded = base64.b64encode(b"Hello, world!")
print(encoded.decode())  # SGVsbG8sIHdvcmxkIQ==

decoded = base64.b64decode(encoded)
print(decoded.decode())  # Hello, world!

Go

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {
    encoded := base64.StdEncoding.EncodeToString([]byte("Hello, world!"))
    fmt.Println(encoded) // SGVsbG8sIHdvcmxkIQ==

    decoded, _ := base64.StdEncoding.DecodeString(encoded)
    fmt.Println(string(decoded)) // Hello, world!
}

La codificación y decodificación Base64 en JavaScript se realizan con btoa() y atob(), que funcionan de forma nativa en todos los navegadores. Eso sí, solo manejan bien texto Latin1; para soporte completo de UTF-8, como emoji o caracteres acentuados, primero codifica con TextEncoder. En Node.js, usa Buffer.from(str).toString('base64') para codificar y Buffer.from(b64, 'base64').toString() para decodificar. Python y Go usan sus bibliotecas estándar y manejan UTF-8 de forma nativa.

¿Base64 es cifrado? (Seguridad y privacidad)

No: Base64 es codificación, no cifrado simétrico, y esa diferencia importa más de lo que muchos desarrolladores creen. La codificación es totalmente reversible por diseño. Cualquiera que tenga la cadena Base64 puede decodificarla a los datos originales en segundos, sin clave ni contraseña. Si necesitas proteger datos sensibles, Base64 por sí solo no ofrece ninguna confidencialidad.

Esto importa especialmente en contextos de autenticación, donde los tokens de acceso y los identificadores de sesión suelen estar codificados en Base64, pero no cifrados. Trata cualquier cadena Base64 igual que tratarías texto plano. No pongas secretos, contraseñas o claves privadas dentro a menos que antes estén cifrados. Para confidencialidad real, nuestra herramienta Cifrado / Descifrado AES maneja cifrado y descifrado AES directamente en tu navegador.

En cuanto a privacidad, esta herramienta funciona completamente del lado del cliente en tu navegador. Las conversiones de texto, archivos e imágenes nunca se suben a un servidor. Las cargas sensibles, tokens de API, contenidos internos de archivos o credenciales que estás depurando se quedan en tu equipo todo el tiempo. Si estás verificando firmas API o cargas de webhooks, nuestro Generador HMAC genera salida HMAC-SHA256 que puedes inspeccionar aquí.

Errores comunes de Base64 y cómo solucionarlos

Los errores de Base64 casi siempre se reducen a uno de estos tres problemas, y cada uno tiene una solución rápida. Reconocer el patrón te evita revisar toda la entrada cuando el fallo es algo sencillo.

Error
Causa
Solución
"Carácter no válido"La entrada contiene caracteres fuera de A-Z, a-z, 0-9, +, /, =Elimina espacios, saltos de línea o comillas sueltas antes de decodificar
"Relleno incorrecto" / longitud no múltiplo de 4Se perdió o truncó uno o más caracteres finales "="Rellena la cadena con "=" hasta que su longitud sea múltiplo de 4
La salida decodificada es texto ilegibleSe seleccionó el juego de caracteres incorrecto, o la cadena usa Base64URL en lugar de Base64 estándarCambia el juego de caracteres a UTF-8, o reemplaza "-"/"_" por "+"/"/" antes de decodificar

Si tu cadena viene de una URL, cookie o token de autenticación, casi seguro es Base64URL en lugar de Base64 estándar. Eso corresponde a la fila de "juego de caracteres incorrecto" de arriba. Esta herramienta detecta automáticamente ambas variantes, así que pegar un segmento de token o una cadena segura para URL se decodifica correctamente sin conversión manual. Si no estás seguro de si una cadena es Base64 válida, la pestaña Validador Base64 te lo dice al instante.

Base64 frente a otras codificaciones

Base64 no es el único esquema de binario a texto, y elegir el adecuado depende de a dónde vaya la salida. La tabla siguiente compara Base64 con las dos codificaciones con las que los desarrolladores suelen confundirlo.

Codificación
Conjunto de caracteres
Sobrecarga de tamaño
Mejor para
Base6464 caracteres (A-Z, a-z, 0-9, +, /)~33 % más grandeJSON, XML, correo (MIME), URI de datos
Base64URL64 caracteres (A-Z, a-z, 0-9, -, _)~33 % más grandeURL, cookies, tokens de autenticación, encabezados HTTP
Hexadecimal16 caracteres (0-9, A-F)100 % más grandeHashes, sumas de verificación, depuración de bajo nivel
Codificación URL (percent-encoding)ASCII + secuencias "%XX"Varía según el contenidoCadenas de consulta, datos de formularios

Hex es más legible para hashes cortos, pero duplica el tamaño de la salida, así que resulta poco práctico para archivos grandes. La codificación URL estándar está pensada para cadenas de consulta, no para datos binarios. Por eso Base64, y en concreto Base64URL, se convirtió en la opción por defecto para cualquier dato binario que deba viajar dentro de una URL. Para percent-encoding en query strings, nuestra herramienta Codificador / Decodificador URL encaja mejor; para hashes SHA-256 o MD5, nuestro Generador de Hash cubre todos los algoritmos principales.

Preguntas frecuentes

Preguntas frecuentes