python实现des加解密算法
时间: 2023-09-29 15:06:53 浏览: 58
DES加解密算法是一种对称加密算法,它使用相同的密钥对数据进行加密和解密。在Python中,我们可以使用pycryptodome库来实现DES加解密算法。
首先,我们需要安装pycryptodome库。可以使用以下命令进行安装:
```
pip install pycryptodome
```
接下来,我们可以使用以下代码来实现DES加解密算法:
```python
from Crypto.Cipher import DES
# 加密函数
def des_encrypt(key, text):
# 将密钥调整为8字节长度
key = key[:8].encode('utf-8')
# 创建DES对象并进行加密
des = DES.new(key, DES.MODE_ECB)
encrypted_text = des.encrypt(text.encode('utf-8'))
# 返回加密结果
return encrypted_text.hex()
# 解密函数
def des_decrypt(key, encrypted_text):
# 将密钥调整为8字节长度
key = key[:8].encode('utf-8')
# 创建DES对象并进行解密
des = DES.new(key, DES.MODE_ECB)
decrypted_text = des.decrypt(bytes.fromhex(encrypted_text)).decode('utf-8')
# 返回解密结果
return decrypted_text
# 测试代码
if __name__ == '__main__':
key = '12345678' # 密钥,必须为8字节长度
text = 'Hello, DES!' # 待加密的文本
encrypted_text = des_encrypt(key, text) # 加密
decrypted_text = des_decrypt(key, encrypted_text) # 解密
print('原文:', text)
print('密文:', encrypted_text)
print('解密后的文本:', decrypted_text)
```
运行上述代码,可以得到以下输出结果:
```
原文: Hello, DES!
密文: 1321f7a0e4c5f8ee
解密后的文本: Hello, DES!
```
可以看到,DES加解密算法已经成功实现。需要注意的是,密钥必须为8字节长度,超过或不足8字节都会导致加解密失败。