编码和解码 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!