python加密函数如何处理数据

avatar
作者
猴君
阅读量:0

Python 加密函数可以通过使用标准库中的 cryptography 模块或第三方库如 pycryptodome 来处理数据。以下是使用这些库进行加密和解密的示例:

使用 cryptography

首先,安装 cryptography 库:

pip install cryptography 

然后,可以使用 Fernet 对称加密:

from cryptography.fernet import Fernet  # 生成密钥 key = Fernet.generate_key() cipher_suite = Fernet(key)  # 加密 data = "Hello, World!" encrypted_data = cipher_suite.encrypt(data.encode()) print("Encrypted data:", encrypted_data)  # 解密 decrypted_data = cipher_suite.decrypt(encrypted_data).decode() print("Decrypted data:", decrypted_data) 

使用 pycryptodome

首先,安装 pycryptodome 库:

pip install pycryptodome 

然后,可以使用 AES 对称加密:

from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad import base64  # 生成密钥 key = get_random_bytes(16)  # AES-128 需要 16 字节密钥 cipher_suite = AES.new(key, AES.MODE_CBC)  # 加密 data = "Hello, World!" iv = cipher_suite.iv encrypted_data = cipher_suite.encrypt(pad(data.encode(), AES.block_size)) encrypted_data = base64.b64encode(iv + encrypted_data) print("Encrypted data:", encrypted_data)  # 解密 decoded_data = base64.b64decode(encrypted_data) iv = decoded_data[:AES.block_size] encrypted_data = decoded_data[AES.block_size:] cipher_suite = AES.new(key, AES.MODE_CBC, iv) decrypted_data = unpad(cipher_suite.decrypt(encrypted_data), AES.block_size).decode() print("Decrypted data:", decrypted_data) 

请注意,密钥和初始化向量(IV)应妥善保管,不要泄露给未经授权的人员。在实际应用中,密钥和 IV 的生成和管理应该更加严格和安全。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!