DES算法(python实现)
时间: 2024-05-12 15:12:09 浏览: 11
DES(Data Encryption Standard)是一种对称密钥加密算法,也是最早被广泛使用的加密算法之一。它的输入和输出都是64位,密钥长度为56位,加密解密过程基于密钥进行。
下面是一个简单的Python实现:
```python
import binascii
from Crypto.Cipher import DES
# 加密函数
def des_encrypt(key, data):
# 将key转换为8字节长的二进制字符串
key = key[:8].encode('utf-8')
# 将data转换为8字节长的二进制字符串
data = data[:8].encode('utf-8')
# 创建DES对象
des = DES.new(key, DES.MODE_ECB)
# 加密数据
encrypted_data = des.encrypt(data)
# 将加密后的数据转换为16进制字符串
encrypted_data_hex = binascii.b2a_hex(encrypted_data)
return encrypted_data_hex.decode('utf-8')
# 解密函数
def des_decrypt(key, encrypted_data_hex):
# 将key转换为8字节长的二进制字符串
key = key[:8].encode('utf-8')
# 将加密后的数据转换为二进制字符串
encrypted_data = binascii.a2b_hex(encrypted_data_hex.encode('utf-8'))
# 创建DES对象
des = DES.new(key, DES.MODE_ECB)
# 解密数据
decrypted_data = des.decrypt(encrypted_data)
return decrypted_data.decode('utf-8')
# 测试代码
key = 'my_key123'
data = 'Hello World!'
encrypted_data_hex = des_encrypt(key, data)
print('加密后的数据(16进制):', encrypted_data_hex)
decrypted_data = des_decrypt(key, encrypted_data_hex)
print('解密后的数据:', decrypted_data)
```