Python 中 Base64 字符串的编码和解码


在 Python 编程中,对 Base64 字符串进行编码和解码是一项常见的任务。Base64 编码用于将二进制数据转换为可以通过互联网传输的格式,而解码则用于将 Base64 编码的数据转换回其原始格式。在本文中,我们将探讨如何在 Python 中对 Base64 字符串进行编码和解码,包括可用的不同方法和库。

了解 Base64 编码

Base64 编码是一种二进制到文本的编码方案,它以 ASCII 字符串格式表示二进制数据。它通常用于通过互联网传输数据或以易于传输的格式存储数据。编码过程将二进制数据转换为由 64 个字符组成的字符串,这些字符包括 26 个大写字母、26 个小写字母、10 个数字以及两个通常用作填充的附加字符。

Base64 编码通常用于编码需要通过电子邮件、FTP 或其他互联网协议传输的数据。它也用于 Web 应用程序中,以易于传输的格式存储图像、视频和其他二进制数据。

在 Python 中编码 Base64 字符串

在 Python 中编码 Base64 字符串的方法有很多,包括使用 base64 模块、codecs 模块和 b64encode 方法。

使用 Base64 模块

示例

base64 模块提供了在 Python 中编码和解码 Base64 字符串的功能。要使用此模块对字符串进行编码,可以使用 b64encode 方法,如下所示:

import base64
my_string = "Hello, World!"
encoded_string = base64.b64encode(my_string.encode("utf-8"))
print(encoded_string)

输出

这将生成以下输出:

b'SGVsbG8sIFdvcmxkIQ=='

在上面的示例中,我们首先导入 base64 模块。然后,我们定义一个名为 my_string 的字符串变量,我们希望对其进行编码。然后,我们使用 encode() 方法将字符串转换为字节对象,并将其作为参数传递给 b64encode() 方法,该方法返回 Base64 编码的字符串。最后,我们将编码后的字符串打印到控制台。

使用 Codecs 模块

示例

codecs 模块提供了以不同格式(包括 Base64)编码和解码数据的功能。要使用此模块对字符串进行编码,可以使用 base64.b64encode() 方法,如下所示:

import codecs
my_string = "Hello, World!"
encoded_string = codecs.encode(my_string.encode("utf-8"), "base64")
print(encoded_string)

输出

这将生成以下输出:

b'SGVsbG8sIFdvcmxkIQ==\n'

在上面的示例中,我们首先导入 codecs 模块。然后,我们定义一个名为 my_string 的字符串变量,我们希望对其进行编码。然后,我们使用 encode() 方法将字符串转换为字节对象,并将其作为参数传递给 codecs.encode() 方法,该方法以 Base64 格式对数据进行编码。最后,我们将编码后的字符串打印到控制台。

使用 b64encode 方法

示例

b64encode() 方法是 Python 中的内置方法,用于以 Base64 格式对数据进行编码。要使用此方法对字符串进行编码,可以使用以下代码:

import base64
my_string = "Hello, World!"
encoded_string = base64.b64encode(my_string.encode("utf-8"))
print(encoded_string)

输出

这将生成以下输出:

b'SGVsbG8sIFdvcmxkIQ=='

在上面的示例中,我们首先导入 base64 模块。然后,我们定义一个名为 my_string 的字符串变量,我们希望对其进行编码。然后,我们使用 encode() 方法将字符串转换为字节对象,并将其作为参数传递给 b64encode() 方法,该方法返回 Base64 编码的字符串。最后,我们将编码后的字符串打印到控制台。

在 Python 中解码 Base64 字符串

Base64 字符串编码后,可以使用 Python 中的 base64 模块或 codecs 模块将其解码回原始格式。

使用 Base64 模块

示例

要使用 Python 中的 base64 模块解码 Base64 字符串,可以使用 b64decode() 方法,如下所示:

import base64
my_string = "SGVsbG8sIFdvcmxkIQ=="
decoded_string = base64.b64decode(my_string)
print(decoded_string.decode("utf-8"))

输出

这将生成以下输出:

Hello, World!

在上面的示例中,我们首先导入 base64 模块。然后,我们定义一个名为 my_string 的 Base64 编码字符串变量,我们希望对其进行解码。然后,我们使用 b64decode() 方法解码 Base64 字符串,该方法返回一个字节对象。最后,我们使用 decode() 方法将字节对象转换为字符串并将其打印到控制台。

使用 Codecs 模块

示例

要使用 Python 中的 codecs 模块解码 Base64 字符串,可以使用 base64.b64decode() 方法,如下所示:

import codecs
my_string = "SGVsbG8sIFdvcmxkIQ=="
decoded_string = codecs.decode(my_string.encode("utf-8"), "base64").decode("utf-8")
print(decoded_string)

这将生成以下输出:

Hello, World!

在上面的示例中,我们首先导入 codecs 模块。然后,我们定义一个名为 my_string 的 Base64 编码字符串变量,我们希望对其进行解码。然后,我们使用 encode() 方法将字符串转换为字节对象,并将其作为参数传递给 codecs.decode() 方法,该方法以 Base64 格式解码数据。最后,我们使用 decode() 方法将字节对象转换为字符串并将其打印到控制台。

结论

Base64 编码和解码是 Python 编程中的一项常见任务。在本文中,我们探讨了使用 base64 模块和 codecs 模块在 Python 中编码和解码 Base64 字符串的不同方法。我们还学习了如何使用 b64encode()b64decode() 方法执行编码和解码任务。使用这些工具,您可以轻松地将二进制数据转换为 Base64 格式以通过互联网传输,或以易于传输的格式存储 Base64 编码的数据。

更新于: 2023年8月7日

9K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告