Qué es Base64
Base64 es una forma de escribir cualquier dato usando solo 64 caracteres seguros: las letras de la A a la Z y de la a a la z, los dígitos del 0 al 9 y los símbolos + y /. Se diseñó para sistemas que solo pueden transportar texto plano, como el correo electrónico y algunos formularios web. Con Base64, una imagen, un PDF o un texto en cualquier idioma pueden pasar por esos sistemas sin estropearse.
Te encontrarás Base64 en muchos sitios: archivos adjuntos de correo, imágenes incrustadas en CSS como data URL, JSON Web Tokens, claves de API, cabeceras de autenticación HTTP básica y archivos de configuración.
Cómo usar esta herramienta de Base64
Codificar texto. Escribe o pega texto en el cuadro Texto. El Base64 aparece en el cuadro de la derecha mientras escribes. Pulsa Copiar para llevártelo.
Decodificar Base64. Pega Base64 en el cuadro Base64 de la derecha. El texto original aparece a la izquierda. Se aceptan espacios, saltos de línea, relleno incompleto y el prefijo data:...;base64,.
Opciones.
- Apto para URL (- y _) cambia
+por-y/por_, y elimina el relleno=. Úsalo para enlaces, cookies y nombres de archivo. - Dividir en líneas de 76 corta el resultado en líneas de 76 caracteres, el formato que se usa en el correo electrónico (MIME).
Borrar vacía los dos cuadros.
De archivo a Base64. Elige un archivo de hasta 25 MB. Marca Solo Base64 para obtener la cadena sin más o Data URL para un valor listo para usar, como data:image/png;base64,.... Después pulsa Copiar.
De Base64 a archivo. Pega Base64 o una data URL. La herramienta detecta tipos comunes como PNG, JPEG, GIF, WebP, PDF y ZIP, propone un nombre de archivo y muestra una vista previa si es una imagen. Pulsa Descargar archivo para guardarlo.
Cómo funciona Base64
Base64 lee la entrada de tres en tres bytes (24 bits). Divide esos 24 bits en cuatro grupos de 6 bits. Cada grupo de 6 bits es un número del 0 al 63, y ese número elige un carácter del alfabeto Base64. Entran tres bytes y salen cuatro caracteres. Por eso el Base64 ocupa aproximadamente un tercio más que la entrada.
Primero, el texto se convierte en bytes con UTF-8. Por eso aquí funcionan las letras con tilde, la ñ y los emoji: café se convierte en 5 bytes, y son esos bytes los que se codifican. Con un texto en español pasa lo mismo: “Canción del año” ocupa 17 bytes, porque la ó y la ñ ocupan dos cada una, y su Base64 es Q2FuY2nDs24gZGVsIGHDsW8=.
Algunas herramientas más antiguas usan directamente la función btoa del navegador. Esa función falla con cualquier carácter fuera de Latin-1, como € o un emoji. Con la ñ y las vocales con tilde no da error, pero las codifica como Latin-1 y no como UTF-8: btoa('año') devuelve YfFv, mientras que esta herramienta devuelve YcOxbw==. Si otro programa espera UTF-8, YfFv se decodificará con caracteres extraños.
Ejemplos
| Entrada | Base64 | Apto para URL |
|---|---|---|
M |
TQ== |
TQ |
Ma |
TWE= |
TWE |
Man |
TWFu |
TWFu |
Hello, World! |
SGVsbG8sIFdvcmxkIQ== |
SGVsbG8sIFdvcmxkIQ |
café |
Y2Fmw6k= |
Y2Fmw6k |
Zoë |
Wm/Dqw== |
Wm_Dqw |
<?> |
PD8+ |
PD8- |
Las dos últimas filas muestran por qué existe la forma apta para URL. Una / o un + dentro de un enlace pueden romperlo, mientras que _ y - son seguros.
Dos ejemplos más en español, generados con esta herramienta: España da RXNwYcOxYQ== (RXNwYcOxYQ apto para URL) y ¿Qué tal? da wr9RdcOpIHRhbD8=.
Consejos y límites
- Base64 no es seguridad. No oculta nada. Trata el texto en Base64 igual que los datos originales.
- Lee el mensaje de error. Si pegas algo con un carácter como
*, la herramienta te dice qué carácter no es Base64 válido. - Los datos binarios necesitan un archivo. Si los bytes decodificados no son texto UTF-8 válido, la herramienta te avisa. Pega el mismo Base64 en De Base64 a archivo y descárgalo.
- El tamaño crece. Una imagen de 3 MB se convierte en unos 4 MB de Base64. Las data URL incrustadas son útiles para iconos pequeños, pero hacen lentas las fotos grandes.
- El relleno es opcional al decodificar. La herramienta añade por ti los signos
=que falten.
Otras formas de codificar Base64
Línea de comandos (macOS y Linux). echo -n 'Hello, World!' | base64 muestra SGVsbG8sIFdvcmxkIQ==. Usa base64 -d (o base64 -D en versiones antiguas de macOS) para decodificar. Si quitas -n, también codificas un salto de línea al final.
Windows. certutil -encode input.txt output.txt codifica un archivo. En PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World!')) codifica texto.
JavaScript (Node). Buffer.from('Hello, World!').toString('base64') devuelve SGVsbG8sIFdvcmxkIQ==, y Buffer.from('SGVsbG8=', 'base64').toString() devuelve Hello.
Python. base64.b64encode('Hello, World!'.encode()).decode() da el mismo resultado. Ten en cuenta que base64.urlsafe_b64encode conserva el relleno =, así que Zoë se convierte en Wm_Dqw==.
Herramientas relacionadas
Para preparar texto para una dirección web, usa la herramienta para codificar y decodificar URL. Para ver los bytes que hay detrás de tu texto, prueba el convertidor de hexadecimal a texto o la herramienta para codificar y decodificar UTF-8.