python实现DES加密算法
时间: 2024-05-24 15:09:19 浏览: 12
DES是一种对称加密算法,Python中可以使用pycryptodome库来实现DES加密算法。以下是使用pycryptodome库实现DES加密算法的示例代码:
```python
from Crypto.Cipher import DES
def des_encrypt(key, data):
cipher = DES.new(key.encode(), DES.MODE_ECB)
pad_len = 8 - len(data) % 8
padding = bytes([pad_len] * pad_len)
data += padding
ciphertext = cipher.encrypt(data)
return ciphertext
key = '12345678' # 密钥必须为8个字符
data = b'hello world' # 待加密的数据必须是bytes类型
ciphertext = des_encrypt(key, data)
print(ciphertext.hex())
```
在该示例代码中,我们使用了DES.MODE_ECB模式进行加密,即ECB模式。同时,我们还使用了PKCS#5的填充方式对数据进行了填充。如果你想要使用其他的填充方式,可以在padding变量处做出修改。
如果你需要对加密后的密文进行解密,可以使用如下代码:
```python
from Crypto.Cipher import DES
def des_decrypt(key, ciphertext):
cipher = DES.new(key.encode(), DES.MODE_ECB)
data = cipher.decrypt(ciphertext)
pad_len = data[-1]
return data[:-pad_len]
key = '12345678' # 密钥必须为8个字符
ciphertext = bytes.fromhex('1a8c1d5e3a9c9dcb') # 加密后得到的密文必须是bytes类型
data = des_decrypt(key, ciphertext)
print(data.decode())
```
在该示例代码中,我们使用了与加密时相同的密钥和填充方式进行解密。需要注意的是,解密后得到的数据可能存在填充内容,需要根据填充长度进行截取。