在Python中,我们可以使用多种库进行加密和解密操作
- 导入所需库:
import base64 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad
- 加密函数:
def encrypt(plain_text, key): cipher = AES.new(key, AES.MODE_CBC) cipher_text = cipher.encrypt(pad(plain_text.encode('utf-8'), AES.block_size)) return base64.b64encode(cipher.iv + cipher_text).decode('utf-8')
- 解密函数:
def decrypt(encrypted_text, key): encrypted_text = base64.b64decode(encrypted_text) iv = encrypted_text[:AES.block_size] cipher_text = encrypted_text[AES.block_size:] cipher = AES.new(key, AES.MODE_CBC, iv) return unpad(cipher.decrypt(cipher_text), AES.block_size).decode('utf-8')
- 示例:
key = get_random_bytes(16) # 生成一个随机的AES密钥 plain_text = "Hello, World!" # 要加密的文本 # 加密 encrypted_text = encrypt(plain_text, key) print("Encrypted text:", encrypted_text) # 解密 decrypted_text = decrypt(encrypted_text, key) print("Decrypted text:", decrypted_text)
在这个例子中,我们使用了AES加密算法和CBC模式。首先,我们生成一个随机的密钥,然后使用加密函数对明文进行加密。加密后的文本将使用Base64编码,以便于传输和存储。接下来,我们使用解密函数对加密后的文本进行解密,恢复原始的明文。
注意:在实际应用中,请确保密钥的安全存储和传输。此外,根据具体需求,您可能需要使用更高级的加密库,如PyCryptodome。