Base64 是一种基于 64 个可打印字符来表示二进制数据的编码方法。由于直接处理二进制数据在某些场合可能会出现问题(比如在电子邮件或网页中),因此需要一种方式来将二进制数据编码为纯文本格式。Base64 是一种常用的编码方式,它能将二进制数据转换为由 ASCII 字符组成的字符串。
Base64 编码使用以下 64 个字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
此外,还有一个特殊字符 =
,用作填充字符,以确保 Base64 编码的字符串长度是 4 的倍数。
Base64 编码将每 3 个字节的二进制数据转换为 4 个字节的文本数据。具体步骤如下:
=
作为填充字符。假设要将文本 “Hello” 进行 Base64 编码。
H
-> 72,e
-> 101,l
-> 108, l
-> 108, o
-> 111。72
-> 01001000
,101
-> 01100101
,108
-> 01101100
,108
-> 01101100
,111
-> 01101111
。010010 000110 010101 101100 011011 000110 1111
。01101100 01101111 11110000
。010010
-> S
,000110
-> G
,010101
-> V
,101100
-> s
,011011
-> b
,000110
-> G
,1111
(+填充)-> v
,0000
(+填充)-> A
。Python 的 base64
模块可以轻松地进行 Base64 的编解码操作。
以下是编码和解码的示例:
import base64
# 编码
original_string = "Hello"
encoded_string = base64.b64encode(original_string.encode("utf-8"))
print(encoded_string) # 输出: b'SGVsbG8='
# 解码
decoded_bytes = base64.b64decode(encoded_string)
decoded_string = decoded_bytes.decode("utf-8")
print(decoded_string) # 输出: Hello
请注意,b64encode
方法返回的是字节串对象,如果你需要得到字符串,可以调用 .decode("utf-8")
进行转换。同样,解码时也需要将字节串转换回字符串。