Cómo Codificar Decodificar Datos usando Base64 y Por Qué
Cómo Codificar Decodificar Datos usando Base64 y Por Qué

Cómo Codificar/Decodificar Datos usando Base64 y Por Qué

Base64 es un popular esquema de codificación de binario a ASCII diseñado para transferir de forma fiable datos binarios a través de canales que tienen un soporte limitado para varios tipos de contenido.

Este artículo repasa los fundamentos de la codificación Base64, cómo funciona y detalla diferentes formas gráficas y de línea de comandos para codificar tus propios datos usando Base64.

Qué es la Codificación Base64

Concepto de codificación Base64
Concepto de codificación Base64

Base64 es una técnica de codificación que convierte datos binarios, como imágenes y vídeos, en formato ASCII (un esquema de codificación para representar datos de texto en un sistema informático). Dado que los datos binarios están formados por cadenas de 0s y 1s, la codificación Base64 funciona convirtiendo estos caracteres en un conjunto definido de ASCII. El resultado puede descodificarse fácilmente mapeando los caracteres ASCII en el valor binario.

A continuación, puedes encontrar una lista de los caracteres ASCII estándar utilizados en la codificación Base64.

  • Caracteres numéricos: 0-9.
  • Caracteres del alfabeto en mayúsculas: A-Z.
  • Caracteres del alfabeto en minúsculas: a-z.
  • Dos caracteres especiales: “/” y “+”.
Tabla Base64 de RFC 4648
Tabla Base64 de RFC 4648

Por qué se Utiliza la Codificación Base64

Cuando se realiza una transferencia de archivos en línea, los datos binarios del archivo se cortan en trozos que se llaman paquetes. Estos se envían al receptor utilizando diferentes protocolos.

Aquí es donde surge el problema. Si el receptor no puede descodificar el formato de archivo binario del remitente, puede provocar la pérdida o corrupción de los datos. Por lo tanto, se considera una buena práctica encubrir primero el archivo utilizando la codificación Base64 antes de enviarlo al usuario. Base64 codificará los caracteres en formato ASCII, que la mayoría de las máquinas pueden leer. Y dada la amplia adopción de la codificación Base64, básicamente se puede emplear la codificación Base64 en cualquier máquina.

Para qué se Utiliza la Codificación Base64

Base64 se utiliza ampliamente para codificar texto, imágenes, música, vídeos, etc. que se quieran transmitir a través de la web. Uno de los usos más habituales de Base64 son los archivos adjuntos a los correos electrónicos. Los archivos adjuntos a un correo electrónico se codifican utilizando Base64 entre bastidores antes de ser enviados junto con el correo electrónico a su destino.

Con Base64, las imágenes codificadas pueden añadirse directamente a documentos HTML o en archivos CSS. Esta técnica puede ayudar a reducir el número de peticiones de los clientes y mejorar el rendimiento de un sitio web. Sin embargo, tendrás que asegurarte de comprimir la imagen antes de codificarla. De lo contrario, el tamaño de los archivos será muy grande y el sitio web se ralentizará (como alternativa, puede utilizar el formato de archivo webp para comprimir la imagen).

Si estás transfiriendo un gran BLOB (Binary Large Object File) a través de Internet, es obligatorio codificar los datos usando Base64. De lo contrario, si algunos paquetes de red se pierden durante la transferencia, los datos dentro del archivo pueden corromperse y el archivo dejará de ser utilizable.

Otro uso muy popular, pero bastante especializado, de la codificación Base64 es establecer un sonido de carga personalizado para el iPhone. El nuevo sonido de carga puede codificarse en Base 64 a ASCII utilizando la aplicación Atajos (Shortcuts) de los dispositivos móviles de Apple.

Cómo Codificar Datos con Base64 en JavaScript

Para codificar y decodificar datos con Base64, puedes aprovechar las dos funciones de ayuda atob() y btoa() en Javascript. El nombre de estas funciones representa su utilidad. La función atob() traduce ASCII a binario y btoa() significa binario a ASCII.

  • Abre la consola de desarrollo en el navegador que prefieras. En la mayoría de los navegadores esto puede hacerse utilizando el atajo de teclado Ctrl + Shift + I.
  • Haz clic en la pestaña “Consola“. Aquí podemos empezar a escribir nuestro Javascript.
  • Para este ejemplo vamos a definir una variable llamada palabra que contiene la cadena “esgeeks“.
let word="esgeeks";
Abrir consola de desarrollo del navegador
Abrir consola de desarrollo del navegador
  • Utiliza la función btoa() para convertir este string en un string ASCII Base64.
let encodedString=btoa(word)
  • Imprime encodedString en la consola para ver cómo es la representación Base64 de “esgeeks”.
console.log(encodedString)

Salida: ZXNnZWVrcw==

Ejemplo de Base64 en JavaScript
Ejemplo de Base64 en JavaScript

Cómo Codificar Datos con Base64 en Python

En Python, puedes utilizar el paquete estándar Base64 incorporado en Python.

Importa la librería dentro de tu archivo Python usando este comando:

Codificar datos con Base64 en Python
Codificar datos con Base64 en Python
import base64

A continuación, utiliza la función base64.b64encode() para codificar una cadena en caracteres ASCII codificados en Base64. Vamos a utilizar “esgeeks'” para este ejemplo.

encoded = base64.b64encode(b'esgeeks')

Ahora imprime el resultado para ver cómo queda “esgeeks” en formato Base64.

print(encoded)

Cómo Codificar y Descodificar con Base64 en Linux

Cada distribución de Linux viene con una utilidad de codificación y decodificación Base64. Si estás en Windows, puedes utilizar el subsistema de Windows para Linux (WSL) para ejecutar los comandos de terminal que se examinan a continuación.

  • Para convertir una cadena a la codificación Base64, primero haz un echo del valor y desvía (pipe) la salida al comando Base64.
echo "esgeeks" | base64

Para decodificar una cadena codificada en Base64, utiliza --decode o el parámetro -d de la utilidad Base64.

echo "ZXNnZWVrcw==" | base64 --decode
Codificación y decodificación en Base64 con Linux
Codificación y decodificación en Base64 con Linux

Para convertir una imagen utilizando la codificación Base64, añade la ruta de la imagen después del comando base64.

base64 Linux.png
Codificación de imagen a Base64 en Linux
Codificación de imagen a Base64 en Linux

También puedes guardar las cadenas ASCII codificadas en Base64 de salida en un archivo utilizando el siguiente comando.

base64 Linux.png > salida.txt

En el comando anterior, estamos guardando la salida de la imagen “linux.jpg” en el archivo “text.txt”. Ahora puedes transferir estos archivos de texto a donde quieras sin problemas.

Para descodificar la imagen del archivo, utiliza el parámetro -d después del comando Base64.

base64 -d salida.txt > NuevoLinux.jpg
Guardado y descodificación de Base64 a imagen en Linux
Guardado y descodificación de Base64 a imagen en Linux

Uso de Convertidores Base64 en Línea

Existen muchos conversores Base64 en línea, pero destaca el conversor Base64 de nuestro Geeks.Tools. Esta herramienta en línea proporciona una forma práctica de codificar y decodificar textos e imágenes Base64.

Convertidor Base64 en Línea de GeeksTools
Convertidor Base64 en Línea de GeeksTools

Para codificar una cadena de texto, simplemente pega la cadena en el área de texto y pulsa el botón Codificar. Esta herramienta también admite archivos de imagen como entrada.

Codificar texto en Base64 con Geeks.Tools
Codificar texto en Base64 con Geeks.Tools

Otros conversores Base64 en línea fáciles de usar son:

Preguntas más Frecuentes

¿Por qué los archivos codificados en Base64 tienen un tamaño mayor que los archivos binarios normales?

La codificación Base64 utiliza un sistema de 6 bits, mientras que los archivos binarios normales utilizan un sistema de 8 bits. Los 8 bits se denominan bytes. Como la codificación Base64 produce caracteres ASCII que están en 8 bits y como Base64 utiliza un sistema de 6 bits, quedan 2 bits sin ocupar por cada byte de datos. Si haces el cálculo, el archivo codificado en Base64 es un 33% más grande que el archivo original.

¿La codificación Base64 también se traduce en encriptación o cifrado?

No. La codificación y la encriptación son dos cosas diferentes. Codificar significa convertir un formato en otro, mientras que encriptar significa ocultar información para que nadie pueda acceder a ella sin una contraseña. Los archivos cifrados suelen tener una contraseña para descifrar la información, mientras que los archivos codificados pueden descifrarse fácilmente utilizando el algoritmo adecuado.

¿Cómo comprobar si una cadena está codificada en Base64 o no?

Si la cadena es una combinación de lo que parece ser un revoltijo de caracteres, entonces puede estar codificada en Base64. Para asegurarte, mira los caracteres utilizados en la cadena. Si los caracteres están en el rango de A-Z, a-z, 0-9, y “+”, “/.”, entonces se trata de una cadena codificada en Base64. Para descodificar su valor, utiliza cualquiera de las técnicas mencionadas anteriormente.

My Cart Close (×)

Tu carrito está vacío
Ver tienda