Модуль base64

Введение

Примеры

  • Кодирование и декодирование Base64

    Чтобы включить модуль base64 в ваш скрипт, вы должны сначала импортировать его:

     import base64
    
     

    Кодирования и декодирования функции base64 оба требуют байт-подобный объект . Чтобы получить нашу строку в байтах, мы должны кодировать ее, используя встроенную в Python функцию кодирования. Чаще всего UTF-8 используется кодировка, однако полный список этих стандартных кодировок (включая языки с различными символами) можно найти здесь в официальной документации Python. Ниже приведен пример кодирования строки в байты:

     s = "Hello World!"
    b = s.encode("UTF-8")
    
     

    Вывод последней строки будет:

    b'Hello World!'

    b префикс используются для обозначения значения является объектом байт.

    Для Base64 кодирования этих байт, мы используем base64.b64encode() функцию:

     import base64
    s = "Hello World!"
    b = s.encode("UTF-8")
    e = base64.b64encode(b)
    print(e)
    
     

    Этот код выведет следующее:

    b'SGVsbG8gV29ybGQh'

    который все еще находится в объекте байтов. Для того, чтобы получить строку из этих байт, мы можем использовать Python, decode() метод с UTF-8 кодировкой:

     import base64
    s = "Hello World!"
    b = s.encode("UTF-8")
    e = base64.b64encode(b)
    s1 = e.decode("UTF-8")
    print(s1)
    
     

    Результат будет тогда:

    SGVsbG8gV29ybGQh

    Если мы хотим , чтобы закодировать строку и затем декодировать мы могли бы использовать base64.b64decode() метод:

     import base64
    # Creating a string
    s = "Hello World!"
    # Encoding the string into bytes
    b = s.encode("UTF-8")
    # Base64 Encode the bytes
    e = base64.b64encode(b)
    # Decoding the Base64 bytes to string
    s1 = e.decode("UTF-8")
    # Printing Base64 encoded string
    print("Base64 Encoded:", s1)
    # Encoding the Base64 encoded string into bytes
    b1 = s1.encode("UTF-8")
    # Decoding the Base64 bytes
    d = base64.b64decode(b1)
    # Decoding the bytes to string
    s2 = d.decode("UTF-8")
    print(s2)
    
     

    Как и следовало ожидать, выводом будет исходная строка:

     Base64 Encoded: SGVsbG8gV29ybGQh
    Hello World! 
  • Кодирование и декодирование Base32

    Модуль base64 также включает функции кодирования и декодирования для Base32. Эти функции очень похожи на функции Base64:

     import base64
    # Creating a string
    s = "Hello World!"
    # Encoding the string into bytes
    b = s.encode("UTF-8")
    # Base32 Encode the bytes
    e = base64.b32encode(b)
    # Decoding the Base32 bytes to string
    s1 = e.decode("UTF-8")
    # Printing Base32 encoded string
    print("Base32 Encoded:", s1)
    # Encoding the Base32 encoded string into bytes
    b1 = s1.encode("UTF-8")
    # Decoding the Base32 bytes
    d = base64.b32decode(b1)
    # Decoding the bytes to string
    s2 = d.decode("UTF-8")
    print(s2)
    
     

    Это даст следующий результат:

     Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
    Hello World! 
  • Кодирование и декодирование Base16

    Модуль base64 также включает функции кодирования и декодирования для Base16. База 16 наиболее часто упоминается как шестнадцатеричное. Эти функции очень похожи на функции Base64 и Base32:

     import base64
    # Creating a string
    s = "Hello World!"
    # Encoding the string into bytes
    b = s.encode("UTF-8")
    # Base16 Encode the bytes
    e = base64.b16encode(b)
    # Decoding the Base16 bytes to string
    s1 = e.decode("UTF-8")
    # Printing Base16 encoded string
    print("Base16 Encoded:", s1)
    # Encoding the Base16 encoded string into bytes
    b1 = s1.encode("UTF-8")
    # Decoding the Base16 bytes
    d = base64.b16decode(b1)
    # Decoding the bytes to string
    s2 = d.decode("UTF-8")
    print(s2)
    
     

    Это даст следующий результат:

     Base16 Encoded: 48656C6C6F20576F726C6421
    Hello World! 
  • Кодирование и декодирование ASCII85

    Adobe создал свой собственный кодирования под названием ascii85 , который похож на Base85, но имеет свои отличия. Эта кодировка часто используется в файлах Adobe PDF. Эти функции были выпущены в Python версии 3.4. В противном случае, функции base64.a85encode() и base64.a85encode() аналогичны предыдущим:

     import base64
    # Creating a string
    s = "Hello World!"
    # Encoding the string into bytes
    b = s.encode("UTF-8")
    # ASCII85 Encode the bytes
    e = base64.a85encode(b)
    # Decoding the ASCII85 bytes to string
    s1 = e.decode("UTF-8")
    # Printing ASCII85 encoded string
    print("ASCII85 Encoded:", s1)
    # Encoding the ASCII85 encoded string into bytes
    b1 = s1.encode("UTF-8")
    # Decoding the ASCII85 bytes
    d = base64.a85decode(b1)
    # Decoding the bytes to string
    s2 = d.decode("UTF-8")
    print(s2)
    
     

    Это выводит следующее:

     ASCII85 Encoded: 87cURD]i,"Ebo80
    Hello World! 
  • Кодирование и декодирование Base85

    Так же , как функции Base64, Base32 и Base16, то функция кодирования и декодирования Base85 является base64.b85encode() и base64.b85decode() :

     import base64
    # Creating a string
    s = "Hello World!"
    # Encoding the string into bytes
    b = s.encode("UTF-8")
    # Base85 Encode the bytes
    e = base64.b85encode(b)
    # Decoding the Base85 bytes to string
    s1 = e.decode("UTF-8")
    # Printing Base85 encoded string
    print("Base85 Encoded:", s1)
    # Encoding the Base85 encoded string into bytes
    b1 = s1.encode("UTF-8")
    # Decoding the Base85 bytes
    d = base64.b85decode(b1)
    # Decoding the bytes to string
    s2 = d.decode("UTF-8")
    print(s2)
    
     

    который выводит следующее:

     Base85 Encoded: NM&qnZy;B1a%^NF
    Hello World! 

Синтаксис

Параметры

Примечания