Python Language Кодировка и декодирование 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'

который все еще находится в объекте bytes. Чтобы получить строку из этих байтов, мы можем использовать метод decode() Python с 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!