Decodificar y codificar Base64

Decodifica y codifica Base64 de texto y archivos, compatible con UTF-8 y con descarga del archivo.

Base64 decode y encode online: decodificar Base64 a texto, PDF o imagen

Pulsa Decode text or file, pega el string y el texto decodificado aparece a la derecha mientras escribes. Encode text or file hace lo contrario: escribes un texto y obtienes su Base64, o eliges un archivo con Choose file y se codifica entero. Si lo que decodificas no es texto sino un PDF, una imagen o un ZIP, el botón Decode and download file lo guarda como archivo. Nada de esto sale de tu navegador.

Decodificar Base64 a texto o a archivo

El decodificador interpreta los bytes como UTF-8, así que las tildes, la ñ y los emojis salen bien: Y2Fmw6k= da café, algo que atob() por sí solo no consigue. Si el resultado es un revoltijo de símbolos, casi seguro que no es texto: son los bytes de un archivo mostrados como si fueran caracteres.

Para esos casos, escribe un nombre en Download filename y pulsa Decode and download file. La herramienta mira los primeros bytes para saber qué es: %PDF indica un PDF, \x89PNG un PNG, FF D8 FF un JPEG, GIF8 un GIF y PK un ZIP, que también es el formato interno de DOCX y XLSX. Si el nombre no termina ya en la extensión correspondiente, se la añade, y si pegaste un data URI completo usa el tipo MIME que declara. Así se convierte Base64 a PDF o a imagen sin abrir la terminal.

El Base64 ocupa un tercio más que el original, porque cada 3 bytes se escriben como 4 caracteres. Un PDF de 300 KB son unos 400 KB de Base64. Si el string que te han pasado es mucho más corto de lo que debería, probablemente llegó recortado y el archivo descargado no abrirá.

Codificar texto o archivos a Base64

En modo Encode text or file, lo que escribes se convierte primero a bytes UTF-8 y después a Base64, igual que Buffer.from(texto).toString('base64') en Node.js o base64.b64encode(texto.encode()) en Python, así que el resultado coincide con el de tu servidor. Para una imagen, un certificado o un PDF, pulsa Choose file: el archivo se lee en local, su Base64 sustituye el contenido del cuadro y debajo aparece el nombre y el número de bytes codificados.

Un uso típico es incrustar un icono pequeño en CSS o HTML como data URI. La herramienta devuelve solo el Base64, sin prefijo, así que añade tú delante data:image/png;base64, con el tipo MIME que corresponda. Con imágenes de más de unos pocos KB suele compensar servir el archivo normal: el Base64 engorda la hoja de estilos y no se puede cachear por separado.

Qué corrige el decodificador por ti

El Base64 real rara vez llega limpio. Antes de decodificar, la herramienta quita los espacios y saltos de línea que arrastra un correo, un archivo PEM o la salida de base64 sin -w0; convierte los - y _ de Base64url en + y /; completa el relleno = que falte, y descarta el prefijo si pegas un data URI como data:application/pdf;base64,JVBERi0…. Por eso la cabecera de un JWT, eyJhbGciOiJIUzI1NiJ9, se decodifica directamente a {"alg":"HS256"}.

Base64 no es cifrado: cualquiera lo decodifica sin clave, y por eso aparecen tantas credenciales codificadas así, desde la cabecera Authorization: Basic hasta tokens guardados en variables de entorno. Esta página las decodifica sin enviarlas a ningún servidor.

Lo que no tiene arreglo es un valor que perdió o cambió caracteres por el camino. Si el Base64 viajó en una URL sin codificar, cada + se convirtió en un espacio; al quitar los espacios salen otros bytes y el resultado es ilegible. Y una longitud que, dividida entre 4, da resto 1 no corresponde a ningún Base64 válido: falta un trozo, casi siempre por una copia incompleta. En los dos casos, pide el valor original.

Frequently asked questions

¿Cómo convierto Base64 a PDF o a imagen?

Elige Decode text or file, pega el string, con o sin el prefijo `data:`, y pulsa Decode and download file. El tipo se detecta por los primeros bytes y el archivo se guarda con la extensión que le corresponde.

¿Por qué el texto decodificado sale ilegible?

Normalmente porque los bytes no son texto sino un archivo: descárgalo con Decode and download file. Si aparecen símbolos `�` sueltos, el texto original no estaba en UTF-8; si todo está desordenado, el Base64 se dañó por el camino, por ejemplo con `+` convertidos en espacios en una URL.

¿Cómo convierto Base64 a PDF?

Elige Decode text or file, pega el texto Base64 y pulsa Decode and download file. Si empieza por `JVBERi0`, que es `%PDF` codificado, la herramienta reconoce el PDF y lo guarda con la extensión correcta.

¿Base64 es un tipo de cifrado?

No. Es una codificación reversible sin clave: cualquiera puede decodificarla. Sirve para mover bytes por canales de texto, no para proteger contraseñas ni datos sensibles.

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

Cada 3 bytes se convierten en 4 caracteres, así que el resultado crece alrededor de un 33 %, más el relleno `=` al final. Una imagen de 30 KB pasa a unos 40 KB en Base64.

¿Se sube a algún servidor lo que pego?

No. La codificación y la decodificación, también de archivos, se hacen en tu navegador y nada se envía ni se guarda.