Librería codificación y descodificación Base64

Iniciado por z0xb7, Enero 31, 2017, 02:37:22 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 31, 2017, 02:37:22 PM Ultima modificación: Enero 31, 2017, 04:58:13 PM por z0xb
Librería Base64 by z0xb7

Hola a todos, os traigo una librería para C++ para codificar y descodificar en Base64.
Para los que no sepáis lo que es, es un sistema de numeración que utiliza 64 como base, en esta pueden representar todos los caracteres imprimibles de ascii: A-Z, a-z y 0-9 y se suele utilizar para la codificación en diversas aplicaciones.

Entrando más en detalle, siendo 64 la base de la codificación, se trabaja con 6 bits, ya que estos son el numero necesario para representar los 62 caracteres imprimibles de ascii además de otros dos caracteres que suelen ser diferentes según la codificación a realizar, lo que viene a ser 2^5+2^4+2^3+2^2+2^1+2^0  --> 32+16+8+4+2+1 = 63, contando que el 0 representa el primer carácter tenemos 64 caracteres representables.

La tabla de los valores en Base64 es la siguiente:


Dicho de una forma superficial, los caracteres en ascii son representados con 8 bits, para representarlos en Base64 será necesario representarlos con 6 bits, para ello el método utilizado consiste en escribir en un vector todos los bits de cada letra y a continuación hacer packs de 6 bits desde el bit más significativo para luego buscar el valor en la tabla de Base64.

Ahora que ya he intentado resumir en que consiste esta codificación y desde una manera superficial como se codifica, os dejo el código que he realizado y subido en GitHub, allí encontraréis las instrucciones simples necesarias para incorporar esta librería a vuestro proyecto C++ y también podéis consultar el código para ver exactamente como funciona.

Muchas gracias a todos, este es mi primer post, si os ha gustado por favor seguidme en GitHub, subiré proyectos mucho más interesantes que estos (este era para practicar los punteros un poco).

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

z0xb7