base64
是 Python 标准库中的一个,提供了用于处理 base64 编码和解码的功能。下面是一些 base64
库的常见用法,我将通过示例进行说明:
- Base64 编码:将二进制数据转换为 Base64 字符串。
import base64
# 原始二进制数据
data = b"Hello, World!"
# 使用 base64 对数据进行编码
encoded_data = base64.b64encode(data)
print(encoded_data) # 输出: b'SGVsbG8sIFdvcmxkIQ=='
- Base64 解码:将 Base64 字符串解码为原始二进制数据。
import base64
# Base64 编码的字符串
encoded_str = 'SGVsbG8sIFdvcmxkIQ=='
# 使用 base64 对数据进行解码
decoded_data = base64.b64decode(encoded_str)
print(decoded_data) # 输出: b'Hello, World!'
- Base64 编码与 URL 安全:
base64
库还提供了 URL 和文件名安全的 Base64 编码。这在需要将 Base64 编码的字符串用于 URL 或文件名时非常有用。
import base64
# 原始字符串
data = 'Hello, World!'
# 使用 urlsafe 的 base64 对数据进行编码
urlsafe_encoded_data = base64.urlsafe_b64encode(data.encode()).decode()
print(urlsafe_encoded_data) # 输出: 'SGVsbG8sIFdvcmxkIQ=='
注意,当使用 urlsafe_b64encode
时,输出的 Base64 编码字符串不包含 =
字符,这是为了防止在 URL 中产生歧义。
- 使用
base64
进行数据加密:虽然这不是base64
库的主要用途,但你可以使用base64
库来生成随机密钥,并与加密算法一起使用来加密数据。下面是一个使用base64
生成随机密钥,然后使用 AES 加密的示例:
import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
# 使用 base64 生成随机密钥
key = base64.b64encode(get_random_bytes(16))
print(key) # 输出: b'random key'
# 使用 AES 对数据进行加密
cipher = AES.new(key, AES.MODE_CBC)
plaintext = b"Hello, World!"
ciphertext = cipher.encrypt(pad(plaintext, AES.block_size))
iv = cipher.iv
print(ciphertext) # 加密后的数据
以上是 base64
库的一些常见用法示例。虽然它主要用于处理 Base64 编码和解码,但也可以与其他加密和数据处理的库结合使用。