在Python中使用AES-GCM进行加密解密操作
在 Python 中使用 AES-GCM 进行加密解密操作,可以使用 Cryptography 模块。以下是一个使用 Cryptography 模块进行 AES-GCM 加密解密操作的示例:
from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os # 生成密钥和随机数 key = os.urandom(32) nonce = os.urandom(12) # 加密明文 plaintext = b"pidancode.com" aad = b"nonce" aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad) # 输出密文 print("加密后的数据:", ciphertext) # 解密密文 aesgcm = AESGCM(key) decrypted_plaintext = aesgcm.decrypt(nonce, ciphertext, aad) # 输出解密后的明文 print("解密后的数据:", decrypted_plaintext)
在上面的代码中,我们首先使用 os.urandom() 函数生成一个 32 字节的密钥和一个 12 字节的随机数。然后,我们使用 AESGCM 类创建一个 AES-GCM 实例,并使用 encrypt() 方法加密明文。encrypt() 方法接受三个参数:随机数、明文和附加认证数据(AAD)。加密后,我们输出密文。
接下来,我们使用 decrypt() 方法解密密文。decrypt() 方法接受与 encrypt() 方法相同的三个参数:随机数、密文和附加认证数据(AAD)。解密后,我们输出解密后的明文。
请注意,在上面的代码中,我们使用字节串而不是 Unicode 字符串,这是因为 Cryptography 模块只接受字节串而不是 Unicode 字符串。
相关文章