Saltar al contenido
ToolPika

Codificar y decodificar Base64

Codifica un texto o un archivo en Base64, o pega Base64 para decodificarlo. Las tildes, la ñ y los emojis funcionan, y nada sale de tu navegador.

Modo
Hasta 5 MB. El archivo no sale de tu dispositivo.

Funciona en tu navegador. Nada de lo que introduces se envía a ningún servidor.

Cómo funciona

Codificar. El texto se convierte primero en bytes UTF-8, así que se admiten todos los idiomas y emojis. Después los bytes se leen de tres en tres (24 bits), se dividen en cuatro grupos de 6 bits y cada grupo se escribe como uno de los 64 caracteres. Si la entrada no es múltiplo de tres bytes, la salida se rellena con =.

Decodificar. Se ignoran los espacios y saltos de línea, se añade el relleno que falte y se quita el prefijo data:…;base64,, así que puedes pegar Base64 directamente desde un correo, un archivo PEM o una etiqueta de imagen HTML. Si los bytes decodificados no son texto válido (por ejemplo, una imagen), la herramienta te lo indica y te deja descargarlos como archivo.

Los archivos se codifican byte a byte. Marca “Como URL data:” para obtener una cadena que puedes poner directamente en un <img src> o en un url() de CSS.

Ejemplos

Texto Base64
foobar Zm9vYmFy
foob Zm9vYg==
café Y2Fmw6k=
😀 8J+YgA==
subjects?_d c3ViamVjdHM/X2Q= (apto para URL: c3ViamVjdHM_X2Q)

Base64 en código

Lenguaje Codificar texto Decodificar
JavaScript (navegador) btoa(String.fromCharCode(...new TextEncoder().encode(s))) new TextDecoder().decode(Uint8Array.from(atob(b), c => c.charCodeAt(0)))
Node.js Buffer.from(s).toString('base64') Buffer.from(b, 'base64').toString()
Python base64.b64encode(s.encode()).decode() base64.b64decode(b).decode()
Shell echo -n 'texto' | base64 echo 'dGV4dG8=' | base64 -d

Preguntas frecuentes

¿Para qué sirve Base64?

Convierte cualquier dato en texto plano formado por 64 caracteres seguros (A–Z, a–z, 0–9, + y /), para que datos binarios como imágenes o claves puedan viajar por sistemas pensados para texto, como el correo electrónico, JSON, XML, las URL y HTML.

¿Base64 es cifrado?

No. Cualquiera puede decodificar Base64 al instante; no oculta nada. No lo uses nunca para proteger contraseñas o datos personales.

¿Por qué el Base64 ocupa más que el original?

Cada 3 bytes se convierten en 4 caracteres, así que los datos codificados ocupan un 33 % más, más hasta dos signos = de relleno al final.

¿Qué es el Base64 apto para URL?

Una variante que sustituye + por - y / por _, y normalmente quita el relleno =, para que el resultado se pueda usar en URL y nombres de archivo sin escaparlo. Es habitual en los JSON Web Tokens (JWT). El decodificador de esta página acepta las dos variantes automáticamente.

¿Por qué btoa() falla con mi texto en JavaScript?

La función btoa() del navegador solo acepta caracteres hasta el código 255, así que un texto con emojis o con la mayoría de letras no latinas da error. Primero hay que codificar el texto como bytes UTF-8, que es lo que hace esta herramienta.