Una de las herramientas más útiles de Python es el módulo base64, el cual es accesible mediante la línea import base64. Este módulo nos permite codificar y decodificar datos binarios en formatos como Base16, Base32, Base64 y Base85. Estas son codificaciones indispensables para enviar datos de forma más seguras por medio de redes, incrustarlos en URLs o trabajar con formatos estándar como MIME.
Por todas estas ventajas, el día de hoy quiero mostrarte cómo funciona import base64 y cómo puedes sacarle provecho.

¿Qué es y por qué usar import base64?
En un mundo paralelo (o inclusive en este), imagina que te llega un mensaje escrito en un idioma que nadie de tu círculo cercano entiende. Decides entonces cifrarlo haciendo uso de un código sencillo que solo tú y el destinatario conocen. Básicamente eso es lo que hace el módulo de import base64: convierte datos en un formato seguro y entendible para los sistemas, lo cual asegura que nada importante pueda perderse o malinterpretarse en el proceso.
Cada vez que usas import base64, estás haciendo uso de una herramienta poderosísima para transformar datos binarios en texto ASCII imprimible, lo que sirve en gran medida para transferir información a través de canales como correos electrónicos, APIs o inclusive archivos JSON.
¿Cómo funciona import base64 en Python?
El módulo de import base64 posee algunas funciones modernas y otras heredadas que nos permiten codificar y decodificar datos. Veamos algunas de las más importantes:
- Codificación con base64: este es un proceso que consiste en transformar datos binarios en texto ASCII. Por ejemplo, con la función b64encode podemos convertir datos en una cadena segura para transferir del siguiente modo:
import base64
# Codificar datos
data = b'Aprender Python es genial'
encoded_data = base64.b64encode(data)
print(encoded_data) # Resultado: b'QXByZW5kZXIgUHl0aG9uIGVzIGdlbmlhbA=='
- Decodificación con base64: la decodificación es lo contrario a la codificación, ya que revierte el proceso y devuelve los datos a su formato original. Para ello debes hacer uso de la función b64decode así:
# Decodificar datos
decoded_data = base64.b64decode(encoded_data)
print(decoded_data) # Resultado: b'Aprender Python es genial'
¿Cuál es la diferencia entre los formatos Base16, Base32, Base64 y Base85?
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaTodos los formatos son distintos, veamos un poco en qué consisten esas diferencias:
Formato | Descripción | Uso común |
---|---|---|
Base16 | Codificación hexadecimal. Genera cadenas más largas que otros formatos. | Usado en sistemas donde se necesita legibilidad humana y compatibilidad básica. |
Base32 | Codificación que utiliza 32 caracteres, insensible a mayúsculas y minúsculas. | Ideal para sistemas que diferencian casos de caracteres. |
Base64 | La codificación más popular por su equilibrio entre longitud y compatibilidad. | Transferencia de datos a través de APIs, correos electrónicos y URL. |
Base85 | Codificación compacta que utiliza 85 caracteres, reduciendo la longitud de las cadenas. | Común en aplicaciones como Git para diferencias binarias. |
¿Qué puedes hacer con import base64?
Con import base64 puedes hacer bastantes cosas, etnre ellas:
- Incluir datos en URLs: con la función urlsafe_b64encode podemos codificar datos de manera segura para después utilizarlos en las URLs. Lo podemos hacer del siguiente modo:
url_safe = base64.urlsafe_b64encode(b'https://keepcoding.io')
print(url_safe)
- Trabajo con archivos: el módulo también nos permite codificar y decodificar archivos. Si, por ejemplo, quieres codificar una imagen para enviarla a través de una API, lo puedes hacer así:
# Codificar una imagen
with open('imagen.jpg', 'rb') as image_file:
encoded_image = base64.b64encode(image_file.read())
# Decodificar y guardar la imagen
with open('decoded_image.jpg', 'wb') as output_file:
output_file.write(base64.b64decode(encoded_image))
Algunas consideraciones de seguridad:
Si bien el módulo de import base64 hace más fácil la transferencia de datos, no es un mecanismo de cifrado. Es decir, que no deberías confiar en él para proteger información sensible. En vez de ello, combina base64 con herramientas de cifrado como las que tiene el módulo cryptography para mayor seguridad.
Si quieres seguir aprendiendo sobre programación y cosas interesantes sobre Python y otros lenguajes, no dudes en unirte a nuestro bootcamp de fundamentos de programación, en el cual aprenderás todo lo que necesitas para convertirte en un programador de primer nivel y adquirir el empleo de tus sueños. ¡No dejes pasar esta oportunidad y crece a medida que crece la industria!