在Python中,可以使用pycryptodome库来实现AES加解密。

首先,需要安装pycryptodome库。可以使用以下命令进行安装:

pip install pycryptodome

接下来,可以使用以下代码来实现AES加解密:

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes

# 生成随机的16字节密钥
key = get_random_bytes(16)

# 加密函数
def encrypt(plain_text):
    cipher = AES.new(key, AES.MODE_CBC)
    cipher_text = cipher.encrypt(pad(plain_text.encode(), AES.block_size))
    return cipher.iv + cipher_text

# 解密函数
def decrypt(cipher_text):
    iv = cipher_text[:AES.block_size]
    cipher = AES.new(key, AES.MODE_CBC, iv)
    plain_text = unpad(cipher.decrypt(cipher_text[AES.block_size:]), AES.block_size)
    return plain_text.decode()

# 测试
text = "Hello, AES!"
cipher_text = encrypt(text)
print(cipher_text)
plain_text = decrypt(cipher_text)
print(plain_text)

在上述代码中,encrypt函数使用AES的CBC模式进行加密,首先生成一个随机的16字节密钥,然后使用该密钥和随机生成的初始化向量(iv)创建AES对象。接着,使用pad函数对明文进行填充,并调用encrypt方法进行加密,返回iv和密文的组合。

decrypt函数使用相同的密钥和iv创建AES对象,并调用decrypt方法对密文进行解密。解密后,使用unpad函数去除填充,并返回解密后的明文。

在测试中,我们加密了字符串"Hello, AES!"并解密了密文,最后输出了明文。

请注意,AES加密算法需要使用相同的密钥和iv才能正确解密密文。因此,在实际应用中,需要将密钥和iv保存好以便解密时使用

python AES 加解密方式

原文地址: https://www.cveoy.top/t/topic/icF8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录