Codificación Base64

Convertir cadena de carácteres a base64

Posted by Juan Valera on Sunday, March 20, 2016

Codificación de caracteres

Según su definición, la codificación de caracteres es la acción de convertir un carácter (letra, número o símbolo) de un lenguaje natural (el lenguaje natural es aquel lenguaje hablado y escrito por los humanos para la comunicación) a un carácter de otro sistema de representación, utilizando ciertas reglas de codificación.

Por ejemplo:

Codificación Base64

La codificación Base64 es simplemente un sistema de numeración posicional de los caracteres ASCII en 6 bits.

El máximo de representaciones en 6 bits serian 2 elevado a la 6, es decir 63 representaciones en la practica 64 caracteres (de 0 a 63) en su representación decimal y 111111 (6 bits) en su representación binario.

Veamos el siguiente ejemplo, quiero codificar mi nombre "Juan" así que buscamos la numeración posicional en la tabla ASCII para cada una de las letras de mi nombre:

  • J = 74 decimal / 01001010 binario
  • u = 117 decimal / 01110101 binario
  • a = 97 decimal / 01100001 binario
  • n = 110 decimal / 01101110 binario


Ahora utilizamos la representación binaria de las posiciones de los caracteres de la tabla ASCII:

Tomamos grupos de 6 bits y buscamos su representación en decimal, como sobran dos bits de la letra "n" añadimos 4 ceros para completar los 6 bits:

Buscamos la representación decimal de cada numero binario de 6bits:

Pueden utilizar el siguiente link para realizar la conversión de binario a decimal:

http://www.binaryhexconverter.com/binary-to-decimal-converter

Ahora utilizamos la tabla de índices base64 para obtener la representacion de las posiciones en decimal:

De esta forma obtenemos la Codificación Base64:

Base64 se codifica tomando los bytes de tres como entrada en cuatro sextetos de bits, es decir toma de 24 bits por vez. 

Cuando la cantidad no coincide, completamos con el carácter de relleno “=” los sextetos restantes, en este caso agregamos "==" para completar los 2 sextetos faltantes y asi completar los 3 bytes de entrada:

La codificación de "Juan" base64 es : SnVhbg==


Aquí les dejo el link de un Decoder/Encoder Base64 online:

https://www.base64encode.org/

Cualquier comentario o duda pueden contactarme a través de la sección Contact.

Juan Valera.