Документация по Python

Модуль base64

Модуль base64
В: Документация по Python

Модуль base64 предоставляет функции для кодирования двоичных данных в печатные символы ASCII и декодирования таких кодировок обратно в двоичные данные. Он предоставляет функции кодирования и декодирования для кодировок, указанных в RFC 4648, который определяет алгоритмы Base16, Base32 и Base64, а также для стандартных кодировок Ascii85 и Base85.

Кодирование и декодирование 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
# Создайте строку
s = "Hello World!"

# Кодирование строки в байты
b = s.encode("UTF-8")

# Base64 кодирование в байты
e = base64.b64encode(b)

# Декодирование байтов Base64 в строку
s1 = e.decode("UTF-8")

# Печать строки в кодировке Base64
print("Base64 Encoded:", s1)

# Кодирование строки в кодировке Base64 в байты
b1 = s1.encode("UTF-8")

# Декодирование байтов Base64
d = base64.b64decode(b1)

# Декодирование байтов в строку
s2 = d.decode("UTF-8")
print(s2)

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

# Base64 Encoded: SGVsbG8gV29ybGQh
# Hello World! 

Кодирование и декодирование Base32

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

import base64

# Создание строки
s = "Hello World!"

# Кодируем строку в байты
b = s.encode("UTF-8")

# Base32 Кодировать байты
e = base64.b32encode(b)

# Декодирование байтов Base32 в строку
s1 = e.decode("UTF-8")

# Печать строки в кодировке Base32
print("Base32 Encoded:", s1)

# Кодирование строки в кодировке Base32 в байты
b1 = s1.encode("UTF-8")

# Декодирование байтов Base32
d = base64.b32decode(b1)

# Декодирование байтов в строку
s2 = d.decode("UTF-8")
print(s2)

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

# Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
# Hello World!

Кодирование и декодирование Base16

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

import base64

# Создание строки
s = "Hello World!"

# Кодируем строку в байты
b = s.encode("UTF-8")

# Base16 Кодировать байты
e = base64.b16encode(b)

# Декодирование байтов Base16 в строку
s1 = e.decode("UTF-8")

# Печать строки в кодировке Base16
print("Base16 Encoded:", s1)

# Кодирование строки в кодировке Base16 в байты
b1 = s1.encode("UTF-8")

# Декодирование байтов Base16
d = base64.b16decode(b1)

# Декодирование байтов в строку
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

# Создание строки
s = "Hello World!"

# Кодируем строку в байты
b = s.encode("UTF-8")

# ASCII85 Кодировать байты
e = base64.a85encode(b)

# Декодирование байтов ASCII85 в строку
s1 = e.decode("UTF-8")

# Печать строки в кодировке ASCII85
print("ASCII85 Encoded:", s1)

# Кодирование строки в кодировке ASCII85 в байты
b1 = s1.encode("UTF-8")

# Декодирование байтов ASCII85
d = base64.a85decode(b1)

# Декодирование байтов в строку
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

# Создание строки
s = "Hello World!"

# Кодируем строку в байты
b = s.encode("UTF-8")

# Base85 Кодировать байты
e = base64.b85encode(b)

# Декодирование байтов Base85 в строку
s1 = e.decode("UTF-8")

# Печать строки в кодировке Base85
print("Base85 Encoded:", s1)

# Кодирование строки в кодировке Base85 в байты
b1 = s1.encode("UTF-8")

# Декодирование байтов Base85
d = base64.b85decode(b1)

# Декодирование байтов в строку
s2 = d.decode("UTF-8")
print(s2)

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

# Base85 Encoded: NM&qnZy;B1a%^NF
# Hello World!
Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.