Qué es Base64 y para qué sirve

Seguramente has escuchado hablar de Base64, pero ¿sabes qué es y para qué sirve? En este artículo te explicaremos de forma sencilla y práctica qué es Base64, cómo funciona y en qué casos se utiliza.

Base64 es un algoritmo de codificación que permite transformar cualquier carácter, incluyendo datos binarios e imágenes, en un alfabeto que consta de letras, dígitos y signos latinos. Esto significa que puedes convertir caracteres especiales, como emojis e incluso imágenes, en una secuencia “legible” (para cualquier ordenador), que se puede guardar y/o transferir en cualquier otro lugar.

En el caso de las imágenes, Base64 se utiliza a menudo para transmitir datos binarios por medio de transmisiones que tratan sólo con texto, como para enviar imágenes y archivos adjuntos por correo electrónico. Cada 6 bits de datos se convierten en un carácter imprimible, lo que significa que 3 bytes (24 bits) de datos se representan con 4 caracteres imprimibles.

Por ejemplo, la imagen del logo de Bing tiene un tamaño de 2.5 KB (kilobytes) y está compuesta por 2.048 bytes. Si la codificamos en Base64, obtendremos una cadena de texto de 2.732 caracteres, que ocupa 2.7 KB. Como puedes ver, el tamaño del archivo aumenta en un 33% (más precisamente 4/3), ya que reemplaza cada 3 bytes por 4 bytes.

¿Cómo funciona Base64?

Base64 utiliza un alfabeto de 64 caracteres para representar los datos binarios. Estos caracteres son: las letras mayúsculas del A al Z, las letras minúsculas del a al z, los dígitos del 0 al 9 y los signos + y /. Además, se utiliza el signo = como relleno cuando los datos no son múltiplos de 3 bytes.

El proceso de codificación consiste en dividir los datos binarios en grupos de 6 bits y asignarles un carácter del alfabeto según una tabla de correspondencia. Por ejemplo, el primer grupo de 6 bits es 010000, que corresponde al carácter Q. El segundo grupo es 010001, que corresponde al carácter R. Y así sucesivamente hasta completar la cadena de texto.

El proceso inverso, es decir, la decodificación, consiste en hacer lo contrario: dividir la cadena de texto en grupos de 4 caracteres y convertirlos en grupos de 3 bytes según la misma tabla de correspondencia. Por ejemplo, el primer grupo de 4 caracteres es Qklu, que corresponde a los bytes 01000001 00101100 01110101. El segundo grupo es ZW5n, que corresponde a los bytes 01100101 01101110 01100111. Y así sucesivamente hasta obtener los datos originales.

¿Cómo decodificar Base64?

Si quieres decodificar una cadena de texto codificada en Base64, puedes utilizar varias herramientas online o librerías de programación que te facilitan el proceso. Por ejemplo, puedes utilizar esta página web: https://www.base64decode.org/, donde sólo tienes que introducir la cadena de texto codificada y pulsar el botón “Decode”. También puedes utilizar esta otra página web: https://codebeautify.org/base64-decode/, donde además puedes ver la imagen resultante si la cadena codifica una imagen.

Si prefieres utilizar una librería de programación, puedes elegir entre varios lenguajes que ofrecen funciones o métodos para decodificar Base64. Por ejemplo, en Python puedes utilizar el módulo base64 y la función b64decode(). En Java puedes utilizar la clase Base64 y el método decode(). En JavaScript puedes utilizar el método atob(). En C# puedes utilizar la clase Convert y el método FromBase64String(). En PHP puedes utilizar la función base64_decode().

En cualquier caso, el proceso es similar: se toma la cadena de texto codificada en Base64, se divide en grupos de 4 caracteres, se convierten en grupos de 3 bytes según la tabla de correspondencia y se concatenan para obtener los datos originales.

¿Para qué sirve Base64?

Base64 tiene varias aplicaciones prácticas en el mundo digital. Algunas de las más comunes son:

  • Enviar imágenes y archivos adjuntos por correo electrónico: Como hemos visto, Base64 permite convertir las imágenes y otros archivos binarios en texto plano, lo que facilita su envío por medios que sólo admiten texto, como el correo electrónico. De esta forma, se evita la pérdida o corrupción de los datos durante la transmisión.
  • Incrustar imágenes en páginas web: Otra ventaja de Base64 es que permite incrustar las imágenes directamente en el código HTML o CSS de una página web, sin necesidad de utilizar una URL externa o un archivo separado. Esto puede mejorar la velocidad de carga y la seguridad de la página web, ya que se evitan las peticiones al servidor o los posibles bloqueos por parte de los navegadores.
  • Generar códigos QR: Los códigos QR son una forma de almacenar información en forma de matriz bidimensional que se puede leer con una cámara o un escáner. Para generar un código QR se puede utilizar Base64 para codificar la información deseada en una cadena de texto y luego convertirla en una imagen mediante una librería o una herramienta online.
  • Autenticar usuarios y proteger datos: Base64 también se puede utilizar para generar tokens o claves de acceso que permitan autenticar a los usuarios o proteger los datos sensibles. Por ejemplo, se puede utilizar Base64 para codificar el nombre de usuario y la contraseña de un usuario y enviarlos al servidor mediante una cabecera HTTP. El servidor puede decodificar los datos y verificar la identidad del usuario. Sin embargo, es importante mencionar que Base64 no es un algoritmo de cifrado seguro, ya que se decodifica fácilmente. Por lo tanto, no debe utilizarse como un método de cifrado seguro. Lo más recomendable es combinarlo con otros algoritmos de cifrado más robustos, como AES o RSA.

Conclusión

Base64 es un algoritmo de codificación que permite transformar cualquier carácter, incluyendo datos binarios e imágenes, en un alfabeto que consta de letras, dígitos y signos latinos. Esto facilita el almacenamiento y la transmisión de los datos por medios que sólo admiten texto, como el correo electrónico o las páginas web. Sin embargo, Base64 no es un algoritmo de cifrado seguro, ya que se decodifica fácilmente. Por lo tanto, no debe utilizarse como un método de cifrado seguro, sino que debe combinarse con otros algoritmos más robustos. Además, el uso de Base64 no reduce el tamaño de los archivos, sino que lo aumenta en un 33%.

Recursos útiles:

Conversor online de imágenes a Base64
Convertidor de imagen a Base64
Base64 Decoder
Base64 (Wikipedia)