在Python中实现加密解密算法有多种方式,包括使用内置库如cryptography、hashlib、base64等,以及使用简单的算法如AES、DES等。下面我将介绍几种常用的加密解密方法。
1. 使用cryptography库
cryptography是一个强大的加密库,支持多种加密算法,包括对称加密(如AES)和非对称加密(如RSA)。
安装cryptography
pip install cryptography
(1)AES对称加密解密示例
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
import os
# 密钥和初始化向量生成
key = os.urandom(32) # AES-256, 32 bytes
iv = os.urandom(16) # AES block size is 16 bytes
# 密码派生函数生成密钥
salt = os.urandom(16)
kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100000, backend=default_backend())
key = kdf.derive(b"my_secret_password")
# 加密函数
def encrypt(data, key, iv):
padder = padding.PKCS7(algorithms.AES.block_size).padder()
padded_data = padder.update(data) + padder.finalize()
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend())
encryptor = c