0
点赞
收藏
分享

微信扫一扫

python里base64库的常见用法

查拉图斯特拉你和他 2023-11-09 阅读 14

base64 是 Python 标准库中的一个,提供了用于处理 base64 编码和解码的功能。下面是一些 base64 库的常见用法,我将通过示例进行说明:

  1. Base64 编码:将二进制数据转换为 Base64 字符串。
import base64

# 原始二进制数据
data = b"Hello, World!"

# 使用 base64 对数据进行编码
encoded_data = base64.b64encode(data)

print(encoded_data)  # 输出: b'SGVsbG8sIFdvcmxkIQ=='
  1. Base64 解码:将 Base64 字符串解码为原始二进制数据。
import base64

# Base64 编码的字符串
encoded_str = 'SGVsbG8sIFdvcmxkIQ=='

# 使用 base64 对数据进行解码
decoded_data = base64.b64decode(encoded_str)

print(decoded_data)  # 输出: b'Hello, World!'
  1. 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 中产生歧义。

  1. 使用 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 编码和解码,但也可以与其他加密和数据处理的库结合使用。

举报

相关推荐

0 条评论