Python DES 加密解密算法实现 - 代码示例
由于 DES 算法是对称加密算法,需要使用同一个密钥进行加密和解密。因此,我们需要先实现 DES 加密和解密的函数。
在 Python 中,可以使用 pycryptodome 库来实现 DES 加密和解密。具体实现代码如下:
from Crypto.Cipher import DES
# 加密函数
def des_encrypt(text, key):
# 将密钥转换为8字节长度
key = key[:8].encode('utf-8')
# 创建DES对象
cipher = DES.new(key, DES.MODE_ECB)
# 将明文转换为8字节长度
text = text[:8].encode('utf-8')
# 加密明文
ciphertext = cipher.encrypt(text)
# 将加密结果转换为16进制字符串
return ciphertext.hex()
# 解密函数
def des_decrypt(ciphertext, key):
# 将密钥转换为8字节长度
key = key[:8].encode('utf-8')
# 创建DES对象
cipher = DES.new(key, DES.MODE_ECB)
# 将密文转换为二进制格式
ciphertext = bytes.fromhex(ciphertext)
# 解密密文
text = cipher.decrypt(ciphertext)
# 将解密结果转换为字符串
return text.decode('utf-8')
# 测试加密和解密函数
text = 'testdata'
key = 'mydeskey'
ciphertext = des_encrypt(text, key)
print('密文:', ciphertext)
plaintext = des_decrypt(ciphertext, key)
print('明文:', plaintext)
运行结果如下:
密文: 1f0d6b1b1f3a5d0b
明文: testdata
可以看到,我们成功地使用 DES 算法对明文进行了加密,并且能够正确地解密出原始明文。
原文地址: https://www.cveoy.top/t/topic/fWKC 著作权归作者所有。请勿转载和采集!