Cómo se usa
- Pega la cadena Base64 en la entrada o haz clic en Abrir archivo para cargar un archivo que contenga texto en Base64.
- Mantén la salida como Texto y elige la Codificación de texto (UTF-8 de forma predeterminada), o cambia el Formato de salida a Hexadecimal si se trata de datos binarios.
- Si la decodificación falla, lee el mensaje de error: indica la posición del primer carácter no válido.
- Copia el resultado decodificado o descárgalo.
Qué acepta el decodificador
La decodificación invierte la codificación: cada carácter vuelve a su valor de 6 bits y cada grupo de cuatro caracteres se convierte en tres bytes. El Base64 que circula en la práctica rara vez está limpio, así que este decodificador es tolerante:
- Los espacios y los saltos de línea se ignoran, de modo que puedes pegar tal cual cuerpos MIME con ajuste de línea y bloques PEM. Eso sí, elimina antes las líneas
-----BEGINy-----END: sus letras y guiones son caracteres Base64 válidos y se decodificarían como datos. - La entrada segura para URL con
-y_se decodifica igual que el Base64 estándar con+y/. - La falta de relleno no es un problema. Solo se rechaza una longitud de 4n + 1 caracteres, porque un único carácter sobrante no puede formar un byte; suele significar que la cadena se cortó.
- Los data URI también funcionan: el prefijo inicial
data:...;base64,se elimina antes de decodificar.
Salida como texto o como datos binarios
El resultado de decodificar es siempre una secuencia de bytes. Si el original era texto, mantén la salida como Texto y elige su juego de caracteres. Si era una imagen, un PDF, un archivo comprimido, una clave o un texto cifrado, ningún juego de caracteres lo hará legible: cambia el Formato de salida a Hexadecimal para inspeccionar los bytes, o abre Base64 a archivo o Base64 a imagen para previsualizarlo y guardarlo. Los primeros caracteres suelen delatar el contenido:
| El Base64 empieza por | Contenido decodificado |
|---|---|
iVBORw0KGgo | Imagen PNG |
/9j/ | Imagen JPEG |
R0lGOD | Imagen GIF |
JVBERi0 | Documento PDF |
UEsDB | Archivo ZIP, incluidos DOCX, XLSX y JAR |
H4sI | Datos comprimidos con gzip |
eyJ | Objeto JSON, como el encabezado de un JWT |
Por qué el texto decodificado aparece con caracteres extraños
- Juego de caracteres incorrecto. Un texto UTF-8 leído como Windows-1252 convierte la é en
é, y un texto GBK o Shift_JIS leído como UTF-8 muestra caracteres de reemplazo (�). Selecciona el juego de caracteres con el que se escribió el texto. - Datos binarios. Símbolos aleatorios con algún fragmento legible suelto, como
PNGoPKcerca del principio, indican que el contenido es un archivo y no texto. - Datos comprimidos o cifrados. Los flujos gzip, los Protocol Buffers y los textos cifrados se decodifican correctamente, pero no son texto. La salida Hexadecimal muestra lo que hay realmente.
- Doble codificación. Si la salida es a su vez Base64, pégala de nuevo en la entrada y decodifícala una segunda vez.
Decodificar Base64 en código
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (también acepta entrada segura para URL)
Buffer.from(s, 'base64').toString('utf8')
// Navegador: atob() devuelve un carácter por byte, así que después hay que decodificar el UTF-8
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# Shell de Linux y macOS
echo 'SGVsbG8=' | base64 --decode
Especificación
| Alfabeto | A-Z a-z 0-9 + / |
|---|---|
| Tamaño de salida | 4 caracteres por cada 3 bytes (aprox. 133%) |
| Relleno | Con = hasta un múltiplo de 4 caracteres |
| Estándar | RFC 4648, sección 4 |
| Distingue mayúsculas y minúsculas | Sí |
Ejemplos
| Entrada (UTF-8) | Salida |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Preguntas frecuentes
¿Por qué aparece un error de carácter no válido?
%2B y %3D copiadas de una URL. Quita las comillas o deshaz primero la codificación URL de la cadena. El mensaje de error muestra la posición del primer carácter problemático.¿Puedo decodificar Base64 sin relleno?
= finales, así que las cadenas sin relleno procedentes de JWT, URL y API se decodifican con normalidad.¿Por qué el resultado es incorrecto después de copiar Base64 de una URL?
+ en un espacio. Aquí los espacios se ignoran, así que esos caracteres se pierden. Sustituye los espacios por + antes de decodificar y usa Base64URL para los valores que viajan en URL.¿Cómo decodifico Base64 a una imagen o un archivo?
¿Se envía mi Base64 a un servidor?
No. La decodificación se ejecuta en tu navegador con JavaScript y la entrada nunca sale de tu dispositivo, algo importante cuando decodificas tokens, secretos de configuración o datos personales.