python实现des
时间: 2023-06-29 12:07:51 浏览: 39
DES(Data Encryption Standard)是一种对称密钥加密算法,它的密钥长度为56位。下面给出Python实现DES算法的代码示例,使用pycryptodome库。
安装pycryptodome库:
```
pip install pycryptodome
```
代码示例:
```python
from Crypto.Cipher import DES
def pad(text):
"""填充函数"""
length = 8 - (len(text) % 8)
return text + chr(length) * length
def unpad(text):
"""去除填充"""
return text[:-ord(text[-1])]
def encrypt(key, data):
"""加密函数"""
des = DES.new(key.encode(), DES.MODE_ECB)
padded_data = pad(data)
encrypted_data = des.encrypt(padded_data.encode())
return encrypted_data
def decrypt(key, encrypted_data):
"""解密函数"""
des = DES.new(key.encode(), DES.MODE_ECB)
decrypted_data = des.decrypt(encrypted_data)
unpadded_data = unpad(decrypted_data).decode()
return unpadded_data
if __name__ == '__main__':
key = '12345678'
data = 'hello world'
encrypted_data = encrypt(key, data)
print('加密后的数据:', encrypted_data.hex())
decrypted_data = decrypt(key, encrypted_data)
print('解密后的数据:', decrypted_data)
```
输出结果:
```
加密后的数据: b'f25a0add4b8f6c3afd4f9d6d961fd6e6'
解密后的数据: hello world
```
注意:DES算法已经不安全,不建议在实际应用中使用。可以使用AES算法等更安全的加密算法。