Codificación de datos con base64 - Librería Estándar Python

Índice

El modulo base64:

El modulo base64, proporciona funciones para codificar datos binarios a caracteres ASCII imprimibles y decodificar tales codificaciones a datos binarios. Proporciona funciones de codificación y decodifican para las de codificaciones especificadas en RFC 3548. 

RFC 3548 define los algoritmos Base16, Base32 y Base64, y las codificaciones estándar ASCII85 y Base85.

Las codificaciones de RFC 3584, pueden ser usadas para codificar datos binarios, para su envió seguro por correo electrónico. También podrían ser usados en partes de URL y en peticiones HTTP POST.

En este artículos  te daré un recorrido a través del modulo base64. Codificares y decodificaremos datos binarios usando las distintas codificaciones de RFC 3548 (Base16, Base32, Base64 y Base85).



Resultado de imagen para RFC 3548 imagenes



Codificación y Decodificación con Base64, Base32, Base16 y Base85:

Empecemos usando base64, para ello usaremos los métodos: b64encode() y b64decode().


#Codificación con Base64
import base64

python64 = base64.b64encode(b'Mi Diario Python')

print(python64)

b'TWkgRGlhcmlvIFB5dGhvbg=='


De esa forma codificamos  "Mi Diario Python" y tenemos como resultado su codificación en bytes, la cual guardamos en la variable "python64".

Si en vez de codificar queremos decodificar, usamos el método b64decode:


#Decodificación Base64
import base64

python64 = base64.b64encode(b'Mi Diario Python')

python = base64.b64decode(python64)

print(python)
b'Mi Diario Python'

Como pueden observar, el método b64decode() toma como argumento el   objeto bytes devuelto por b64encode().

El resultado es el objeto decodificado como bytes.

Al momento de usar las otras las otras codificaciones de RFC 3548 es lo mismo, veamos otros ejemplos:

#Codificacion en base32
import base64

python32encode = base64.b32encode(b'Mi Diario Python')
print(python32encode)
b'JVUSARDJMFZGS3ZAKB4XI2DPNY======'

#Decodificación de base32
python32decode = base64.b32decode(python32encode)
print(python32decode)
b'Mi Diario Python'

Este es un ejemplo sencillo de como codificar y decodificar usando base32.

El siguiente es un ejemplo de codificación y decodificación usando base16:

#Codificación en base16
from base64 import b16encode, b16decode

python16encode = b16encode(b'Datos a codificar')
print(python16encode)
b'4461746F73206120636F64696669636172'

#Decodificacion de base16
python16decode = b16decode(python16encode)
print(python16decode)
b'Datos a codificar'

Como pueden observar, al codificar, el objeto byte devuelto es diferente que el de base64 y base32. Esto debido a que el sistema Hexodecimal (el cual tiene como base el 16) solo trabaja con 10 dígitos (0-9) y las primeras 6 letras del abecedario (A-F).




Para decodificar los bytes codificados, utilizamos la el método "b16decode".

Y por ultimo tenemos a base85. Veamos un ejemplo:


#Codificación en base85
from base64 import b85encode, b85decode

datosencode = b85encode(b'Este mensaje sera codificado')
print(datosencode)
b'MRRmzAZ=xCb75*_AaiAMVIX5~WNBt;V_{@('

#Decodificación de base85
datosdecode = b85decode(datosencode)
print(datosdecode)
b'Este mensaje sera codificado'

Muy fácil el uso del modulo base64. ¿Que te pareció? Te invito que que investigues más 
acerca de este tema, y le des un buen uso.

Comparte tu experiencia con nosotros dejando un buen comentario, y danos tu opinión
acerca del blog.

Mi nombre es Luis y fue un placer compartir mis conocimientos con todos ustedes :D.


























Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey