Python 加密和解密可以用于保护数据的隐私和安全。常见的加密和解密方法有:
- 对称加密算法(如 AES、DES、3DES):加密和解密使用相同的密钥。
- 非对称加密算法(如 RSA、ECC):使用一对公钥和私钥进行加密和解密。
- 散列算法(如 SHA-256、MD5):用于数据完整性校验和密码存储,而不是加密。
- 混合加密体系:结合以上多种方法以提高安全性。
以下是一个简单的 AES 加密和解密示例:
from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad import base64 # 加密函数 def encrypt(data, key): cipher = AES.new(key, AES.MODE_CBC) ct_bytes = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size)) iv = base64.b64encode(cipher.iv).decode('utf-8') ct = base64.b64encode(ct_bytes).decode('utf-8') return iv + ':' + ct # 解密函数 def decrypt(encrypted_data, key): iv, ct = encrypted_data.split(':') iv = base64.b64decode(iv) ct = base64.b64decode(ct) cipher = AES.new(key, AES.MODE_CBC, iv) return unpad(cipher.decrypt(ct), AES.block_size).decode('utf-8') # 示例 key = get_random_bytes(16) # 生成一个随机的 AES 密钥 data = 'https://www.yisu.com/ask/Hello, World!' encrypted_data = https://www.yisu.com/ask/encrypt(data, key)'加密后的数据:', encrypted_data) decrypted_data = https://www.yisu.com/ask/decrypt(encrypted_data, key)'解密后的数据:', decrypted_data)
请注意,这个示例需要安装 pycryptodome
库。可以使用以下命令安装:
pip install pycryptodome