Python实现对称加密算法
2024.02.17 11:17浏览量:12简介:对称加密算法是一种加密和解密使用相同密钥的加密算法。本文将介绍如何使用Python实现对称加密算法,包括AES、DES等常用算法。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
对称加密算法是一种加密和解密使用相同密钥的加密算法。Python中常用的对称加密算法有AES、DES等。下面我们分别介绍如何使用Python实现这两种算法。
一、AES对称加密算法
AES(Advanced Encryption Standard)是一种常用的对称加密算法,具有较高的安全性。Python中可以使用pycryptodome库来实现AES加密和解密。
首先,需要安装pycryptodome库。可以使用以下命令进行安装:
`pip install pycryptodome`
接下来,我们可以使用下面的代码实现AES加密和解密:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
def aes_encrypt(key, data):
cipher = AES.new(key, AES.MODE_CBC)
encrypted_data = cipher.encrypt(pad(data, AES.block_size))
return encrypted_data
def aes_decrypt(key, encrypted_data):
cipher = AES.new(key, AES.MODE_CBC)
decrypted_data = unpad(cipher.decrypt(encrypted_data), AES.block_size)
return decrypted_data
```
在上面的代码中,aes_encrypt
函数接受一个密钥和一个待加密的数据作为输入,返回加密后的数据。aes_decrypt
函数接受一个密钥和一个已加密的数据作为输入,返回解密后的数据。这两个函数都使用了CBC模式进行加密和解密,并使用了随机生成的初始化向量(IV)。加密和解密时需要保证使用的密钥和IV相同。Crypto.Util.Padding
模块提供了填充函数,用于将数据填充到AES要求的块大小。
二、DES对称加密算法
DES(Data Encryption Standard)是一种较旧的对称加密算法,安全性相对较低,但在某些情况下仍然可以使用。Python中可以使用pycryptodome库来实现DES加密和解密。
首先,需要安装pycryptodome库。可以使用以下命令进行安装:
`pip install pycryptodome`
接下来,我们可以使用下面的代码实现DES加密和解密:
from Crypto.Cipher import DES3
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
def des3_encrypt(key, data):
cipher = DES3.new(key, DES3.MODE_CBC)
encrypted_data = cipher.encrypt(pad(data, DES3.block_size))
return encrypted_data
def des3_decrypt(key, encrypted_data):
cipher = DES3.new(key, DES3.MODE_CBC)
decrypted_data = unpad(cipher.decrypt(encrypted_data), DES3.block_size)
return decrypted_data

发表评论
登录后可评论,请前往 登录 或 注册