编码和解码 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 对象中。要从这些字节中获取字符串,我们可以使用 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!