Base64 编码是一种将二进制数据(如文件、图像、文本等)转换为 ASCII 字符串的编码方式。Base64 编码通常用于在需要传输或存储二进制数据的场合,使其能够通过只支持 ASCII 的系统或协议(如电子邮件或 URL)进行传输。
Base64 编码原理:
Base64 将每 3 个字节的数据(24 位)分割成 4 个 6 位的组,每个 6 位的组会映射到一个 Base64 字符表中的字符。Base64 的字符集包含 64 个字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
如果原始数据的字节数不能被 3 整除,Base64 会在编码结果的末尾添加一个或两个 = 字符作为填充符号,以确保编码后的字符串长度是 4 的倍数。
Base64 编码过程:
将原始二进制数据分割成 24 位(3 字节一组)。
将每组 24 位数据分成 4 组 6 位,映射到 Base64 字符集中的字符。
如果数据不足 3 字节,使用 = 填充。
示例:
假设你有一个原始文本 "hello",它的 Base64 编码是:
makefile
aGVsbG8=
Python 示例(Base64 编码):
以下是如何在 Python 中对数据进行 Base64 编码的代码:
python
import base64
# 原始数据
data = b"hello" # 二进制数据
# Base64 编码
encoded_data = base64.b64encode(data)
# 打印编码结果
print(f"Base64 编码: {encoded_data.decode()}")
Base64 解码:
如果你有 Base64 编码的字符串,可以使用 base64.b64decode 进行解码:
python
# Base64 编码的字符串
encoded_data = "aGVsbG8="
# 解码
decoded_data = base64.b64decode(encoded_data)
# 打印解码后的数据
print(f"解码后的数据: {decoded_data.decode()}")
Base64 编码应用场景:
电子邮件:Base64 编码常用于电子邮件中传输二进制附件。
图像和文件传输:在 Web 应用中,Base64 编码常用于将图像嵌入 HTML 或 CSS 中,避免使用外部资源。
API 和 URL 编码:Base64 编码有时用于 URL 参数或 API 请求/响应中,传输二进制数据或处理特殊字符。