Cómo funciona la codificación’Base64′ (Email)

Cómo funciona la codificación’Base64′ (Email)

Cómo funciona la codificación’Base64′ (Email)

VALORACIÓN DEL ARTÍCULO:
5/5


Si Internet es la autopista de la información, entonces el camino para el correo electrónico es un barranco estrecho. Sólo pueden pasar carros muy pequeños.

El sistema de transporte de correo electrónico está diseñado sólo para texto ASCII simple. Tratar de enviar texto en otros idiomas o archivos arbitrarios es como hacer que un camión atraviese el barranco.

Índice de contenidos

¿Cómo pasa el camión grande por el barranco?

Entonces, ¿cómo se envía un camión grande a través de un barranco pequeño? Hay que desmontarlo por un extremo, transportarlo por el barranco y reconstruir el camión a partir de las piezas del otro extremo.

Lo mismo sucede cuando se envía un archivo adjunto por correo electrónico. En un proceso conocido como codificación, los datos binarios se transforman en texto ASCII, que puede ser transportado por correo electrónico sin problemas. Al final del destinatario, los datos se decodifican y se reconstruye el archivo original.

Un método para codificar datos arbitrarios como texto ASCII es Base64. Es una de las técnicas empleadas por el estándar MIME para enviar datos que no sean texto plano.

Base64 al Rescate

La codificación Base64 toma tres bytes, cada uno de los cuales consta de ocho bits, y los representa como cuatro caracteres imprimibles en el estándar ASCII. Lo hace en esencia en dos pasos.

El primer paso es convertir tres bytes en cuatro números de seis bits. Cada carácter del estándar ASCII consta de siete bits. Base64 sólo utiliza 6 bits (correspondientes a 2^6 = 64 caracteres) para asegurar que los datos codificados sean imprimibles y legibles humanamente. No se utiliza ninguno de los caracteres especiales disponibles en ASCII. Los 64 caracteres (de ahí el nombre Base64) son 10 dígitos, 26 caracteres en minúsculas, 26 caracteres en mayúsculas así como `+’ y ` /’.

Si, por ejemplo, los tres bytes son 155, 162 y 233, el flujo de bits correspondiente (y aterrador) es 100110111110100010101110101001, que a su vez corresponde a los valores de 6 bits 38, 58, 11 y 41.

Estos números se convierten en caracteres ASCII en el segundo paso utilizando la tabla de codificación Base64. Los valores de 6 bits de nuestro ejemplo se traducen a la secuencia ASCII «m6Lp».

  • 155 -> 10011011
  • 162 -> 10100010
  • 233 -> 11101001
  • 100110 -> 38
  • 111010 -> 58
  • 001011 -> 11
  • 101001 -> 41
  • 38 -> m
  • 58 -> 6
  • 11 -> L
  • 41 -> p

Este proceso de dos pasos se aplica a toda la secuencia de bytes codificados. Para asegurar que los datos codificados puedan imprimirse correctamente y no excedan el límite de longitud de línea de ningún servidor de correo, se insertan caracteres de nueva línea para mantener las longitudes de línea por debajo de 76 caracteres. Los nuevos caracteres de línea se codifican como todos los demás datos.

Resolución del juego final

Al final del proceso de codificación, podríamos encontrarnos con un problema. Si el tamaño de los datos originales en bytes es múltiplo de tres, todo funciona bien. Si no lo es, podríamos terminar con uno o dos bytes de 8 bits. Sin embargo, para una codificación correcta, necesitamos exactamente tres bytes.

La solución es añadir suficientes bytes con un valor de ‘0’ para crear un grupo de 3 bytes. Dos de estos valores se añaden si tenemos un byte extra de datos, uno se añade para dos bytes extra.

Por supuesto, estos «0» artificiales no pueden ser codificados usando la tabla de codificación de abajo. Deben estar representados por un carácter número 65. El carácter de relleno de Base64 es ‘=’. Naturalmente, sólo puede aparecer al final de los datos codificados.

Tabla de codificación Base64

ValueCharValueCharValueCharValueChar0A16Q32g48w1B17R33h49x2C18S34i50y3D19T35j51z4E20U36k5205F21V37l5316G22W38m5427H23X39n5538I24I40o5649J25Z41p57510p57510K26a42q58611L27b43r59712M28c44s60813N29d29d45t61914O3030

TAMBIÉN TE INTERESA

Instagram-Creator-Marketplace

España, a la espera del Instagram Creator Marketplace

Instagram es una de las redes sociales de mayor impacto en la población española. Desde su irrupción, la figura del influencer ha crecido enormemente en el mundo del marketing y las marcas. La herramienta Instagram Creator Marketplace puede seguir fortaleciendo a estos prescriptores, visto el potencial que empieza a tener este servicio en Estados Unidos.

avatares-Roblox

Vámonos de shopping en Roblox: Mango inaugura su primera tienda

En dinámico mundo de los juegos online, Roblox (con más de 70 millones de usuarios activos diarios) se ha destacado como una plataforma que ofrece a los participantes una experiencia única y diversa. Una de las características más populares de Roblox es su sistema de personalización de avatares, que permite a los jugadores expresar su

Snapdragon-8-Gen-3

Snapdragon 8 Gen 3, el chip de Qualcomm que empujará la IA en los móviles

La IA ha llegado al universo de los smartphones. Los últimos lanzamientos ya se anuncian con la inteligencia como protagonista. De igual manera, las grandes actualizaciones de software vienen marcada por la presencia de nuevas funciones movidas bajo los parámetros de la inteligencia artificial generativa. Al margen de los desarrollos a nivel de software, es

Ecowatch-1-de-Maxcom

Con el Ecowatch 1 no tendrás excusas para pasarte a un reloj inteligente

Sabemos que es muy difícil convencer a un perfil de personas que reniegan de un smartwatch a comprarse un reloj inteligente y quitarse el de toda la vida. No obstante, vamos a intentarlo con el Ecowatch 1 de Maxcom.  Es tarea complicada porque el gusto por los relojes suele estar muy definido en ciertas personas.

simulador-de-bodas

¿Te casas? La IA y DeWeed pueden ayudarte en la planificación de tu boda

La planificación de una boda es un proceso emocionante pero a menudo abrumador. Desde la selección del lugar perfecto hasta la elección del vestido ideal, hay innumerables decisiones que tomar para que todo salga según lo planeado en el gran día. Tradicionalmente, esta tarea ha supuesto muchos quebraderos de cabeza para los novios. Una vez