Skip to main content

¿Qué es Base64?

Base64 es un método para convertir datos binarios arbitrarios, que comprenden más que solo caracteres de texto sin formato, en un mensaje de texto sin formato que luego se puede transferir a través de una red informática. Es lo que se llama codificación. Si bien la salida de un mensaje codificado en base64 no es algo que un humano pueda entender fácilmente, todavía está compuesto por 64 caracteres comunes en inglés, de donde proviene el nombre, con un 65o carácter adicional utilizado para fines especiales.

La idea detrás de base64 surgió cuando surgió la necesidad de obtener más que simples caracteres de texto a través de comunicaciones en red como el correo electrónico. Los primeros mensajes de correo electrónico comenzaron como caracteres codificados en el Código Estándar Americano para el Intercambio de Información (ASCII), el método de codificación utilizado en las computadoras para representar los caracteres del alfabeto en inglés como texto en pantallas o impresoras. Como la información binaria adicional necesaria para pasar, se desarrollaron nuevos esquemas de codificación.

El método de codificación base64 se describió por primera vez en lo que se conoce como el estándar MIME (Multipurpose Internet Mail Extensions). El estándar MIME definió métodos por los cuales otros caracteres que no estaban codificados en ASCII, como los alfabetos utilizados por idiomas distintos del inglés, así como otros datos binarios arbitrarios, también podrían codificarse en secuencias ASCII y transmitirse a través de mensajes de correo electrónico. De los dos medios principales de codificación descritos por el estándar MIME, base64 comparte el rol con otro conocido como imprimible entre comillas. Si bien el método imprimible entre comillas es capaz de extender ASCII algo más allá de sus 94 caracteres imprimibles limitados, base64 puede tomar cualquier secuencia de bytes y convertirla en una secuencia ASCII.

Base64 necesita tomar cadenas de datos que de otro modo no cumplirían con el estándar ASCII y convertirlas en ASCII. Para hacer esto, el método de codificación es un proceso de recopilación de datos en grupos de tres bytes y convertirlos en cuatro números que representan los caracteres ASCII correspondientes. Dado que un byte es de ocho bits, donde cada bit está representado por uno o por cero, tres bytes están vinculados de extremo a extremo y toda la secuencia entra en un búfer de 24 bits. Los 24 unos y ceros se dividen en cuatro grupos de seis bits, donde a cada uno se le asignan números que coinciden con un carácter ASCII.

Como base64 es capaz de codificar cualquier dato binario, cualquier secuencia de bytes puede pasar por el proceso. Sin embargo, hay una trampa en aquellos casos en que el número de bytes para la codificación no es divisible por tres para que los bits puedan caber en el búfer. Si una secuencia de bytes contiene, digamos, cuatro o cinco bytes, todavía se necesita algo para llenar el búfer y completar los 24 bits completos. En estos casos, cada byte faltante se representa con ocho ceros y posteriormente se convierte en caracteres de relleno en la codificación finalizada. Aquí es de donde proviene el 65. ° carácter mencionado anteriormente, representado en el mensaje codificado con un signo igual (=); solo aparece al final de una codificación si fuera necesario un relleno.

Aunque base64 se diseñó originalmente para transmitir datos binarios a través de mensajes de correo electrónico, su uso ha entrado en juego en varias otras áreas además de MIME. Uno de estos usos bastante comunes es que las bases de datos web y las aplicaciones codifican datos para la creación de un localizador uniforme de recursos (URL) en un formulario web. El lenguaje de marcado extensible (XML) también utiliza una variante que permite incluir datos binarios, como imágenes pequeñas, en los documentos XML. Existen otras variaciones para los métodos de cifrado y otras técnicas relacionadas con la seguridad, como ocultar contraseñas.