¿Qué Es Base64?
Base64 es una forma de escribir cualquier dato, ya sea texto, imágenes o archivos completos, usando solo 64 caracteres seguros: A–Z, a–z, 0–9, + y /, con = como relleno al final (definido en el RFC 4648). Existe para que los datos binarios puedan viajar por sistemas pensados para texto plano, como el email, JSON, HTML y las cabeceras HTTP.
Cada 3 bytes de entrada se convierten en 4 caracteres Base64, por lo que los datos codificados ocupan aproximadamente un 33% más que el original. Por ejemplo, el texto Hi se convierte en SGk=. Base64 aparece en los adjuntos de email, en las URI data: de imágenes en HTML y CSS, en respuestas de API que transportan archivos, en los JSON Web Tokens y en las cabeceras de autenticación HTTP Basic.

Cómo Decodificar Base64
Péguelo en el cuadro Decodificar. Se admiten saltos de línea, espacios, un prefijo data:...;base64,, caracteres seguros para URL (- y _) y la falta del relleno =.
Si los datos son texto, el texto UTF-8 decodificado aparece de inmediato, listo para copiar.
Si los datos son un archivo, el decodificador reconoce el formato por sus primeros bytes: las imágenes se muestran en vista previa y los PDF, ZIP y otros archivos se pueden descargar.
Advertisement
Cómo Codificar Texto o un Archivo a Base64
Escriba o pegue texto en la pestaña Codificar. Se codifica como UTF-8, así que los acentos, la ñ, las escrituras asiáticas y los emoji se codifican y decodifican sin pérdidas.
Marque Seguro para URL para obtener Base64URL (usado en URLs y JWT), o ajustar líneas a 76 caracteres para cuerpos de email MIME.
En Archivo a Base64, suelte cualquier archivo de hasta 10 MB. Copie el Base64 sin procesar o un data URI listo para usar, como data:image/png;base64,..., para incrustarlo en HTML o CSS.
Base64 a Imagen y Base64 a PDF
Base64 suele envolver un archivo: una imagen incrustada en una página web o en un email, o un PDF devuelto por una API. El decodificador revisa los primeros bytes, conocidos como números mágicos, para saber de qué archivo se trata: las imágenes PNG, JPEG, GIF, WebP y SVG obtienen una vista previa en vivo, y los archivos PDF, ZIP, GZIP, MP3 y MP4 obtienen un botón de descarga. Los PDF también se pueden abrir en una pestaña nueva.
En sentido inverso, imagen a Base64 funciona en la pestaña Archivo a Base64: suelte la imagen y copie el data URI.
Advertisement
Variantes de Base64: Estándar, Seguro para URL, MIME y Data URI
Usa + y / con relleno =. Es la opción predeterminada en la mayoría de las bibliotecas y APIs.
Cambia + y / por - y _ y normalmente omite el relleno, para que el resultado pueda ir en una URL o en un nombre de archivo. Los JSON Web Tokens lo usan.
Base64 estándar dividido en líneas de 76 caracteres, como se usa en los adjuntos de email.
Base64 con un prefijo que indica el tipo de archivo, como data:image/png;base64,, para que un navegador pueda mostrarlo directamente en la página.
Base64 Es Codificación, No Cifrado
Base64 hace que los datos se puedan transportar con seguridad, no que sean secretos. Cualquiera puede decodificarlo en un segundo, incluso con esta herramienta:
Nunca use Base64 para ocultar contraseñas o claves. Una cabecera de autenticación HTTP Basic es solo
user:passworden Base64, y por eso solo debe viajar por HTTPS. Revise el certificado de un sitio con el verificador SSL.El contenido de un JWT se puede leer. La parte central de un JSON Web Token es JSON codificado en Base64URL, así que cualquiera que tenga el token puede leer sus claims (declaraciones).
Decodificar aquí es privado. Esta herramienta se ejecuta por completo en su navegador; los datos que pega o sube nunca llegan a nuestro servidor.
¿Necesita confidencialidad real? Use un cifrado adecuado y genere secretos robustos con el generador de contraseñas.
Advertisement
Base64 en JavaScript, Python y la Línea de Comandos
Todos los lenguajes incluyen Base64. Recuerde codificar primero el texto como UTF-8; de lo contrario, los acentos y otros caracteres no ingleses se corrompen.
// Encode UTF-8 text
const b64 = btoa(String.fromCharCode(...new TextEncoder().encode('héllo'))) // 'aMOpbGxv'
// Decode back to text
const text = new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)))import base64
b64 = base64.b64encode('héllo'.encode()).decode() # 'aMOpbGxv'
text = base64.b64decode(b64).decode() # 'héllo'
url_safe = base64.urlsafe_b64encode(b'\xfb\xff\xbf') # b'-_-_'echo -n 'hello' | base64 # aGVsbG8=
echo 'aGVsbG8=' | base64 --decode # hello
base64 -w 0 image.png > image.txt # Linux: one line, no wrapping[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aGVsbG8=')) # helloMás Herramientas de Codificación y Texto
Otros convertidores para trabajar con texto y datos: