在 Python 中,可以使用 pycryptodome 库来实现 AES 加解密。\n\n首先,需要安装 pycryptodome 库。可以使用以下命令进行安装:\n\n\npip install pycryptodome\n\n\n接下来,可以使用以下代码来实现 AES 加解密:\n\npython\nfrom Crypto.Cipher import AES\nfrom Crypto.Util.Padding import pad, unpad\nfrom Crypto.Random import get_random_bytes\n\n# 生成随机的 16 字节密钥\nkey = get_random_bytes(16)\n\n# 加密函数\ndef encrypt(plain_text):\n cipher = AES.new(key, AES.MODE_CBC)\n cipher_text = cipher.encrypt(pad(plain_text.encode(), AES.block_size))\n return cipher.iv + cipher_text\n\n# 解密函数\ndef decrypt(cipher_text):\n iv = cipher_text[:AES.block_size]\n cipher = AES.new(key, AES.MODE_CBC, iv)\n plain_text = unpad(cipher.decrypt(cipher_text[AES.block_size:]), AES.block_size)\n return plain_text.decode()\n\n# 测试\ntext = "Hello, AES!"\ncipher_text = encrypt(text)\nprint(cipher_text)\nplain_text = decrypt(cipher_text)\nprint(plain_text)\n\n\n在上述代码中,encrypt 函数使用 AES 的 CBC 模式进行加密,首先生成一个随机的 16 字节密钥,然后使用该密钥和随机生成的初始化向量(iv)创建 AES 对象。接着,使用 pad 函数对明文进行填充,并调用 encrypt 方法进行加密,返回 iv 和密文的组合。\n\ndecrypt 函数使用相同的密钥和 iv 创建 AES 对象,并调用 decrypt 方法对密文进行解密。解密后,使用 unpad 函数去除填充,并返回解密后的明文。\n\n在测试中,我们加密了字符串 "Hello, AES!" 并解密了密文,最后输出了明文。\n\n请注意,AES 加密算法需要使用相同的密钥和 iv 才能正确解密密文。因此,在实际应用中,需要将密钥和 iv 保存好以便解密时使用。

Python AES 加密解密 - 使用 pycryptodome 库

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

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