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

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.