问题描述】DES算法是对称密码体制中分组密码算法的典型代表它的出现是现代密码学发展史上的一个非常重要的事件。对称密码体制加密和解密使用同一密钥DES的分组长度为64位即对数据进行加密的单位是64位明文和密文的长度相同。以下是DES加密和解密代码要求对明文tomorrow进行加密密钥为luckycat。请将正确的答案填写在横线上使得整个程序完整并能顺利调试成功。【样例输入】tomorrow【样例输出
from Crypto.Cipher import DES
def pad(text):
while len(text) % 8 != 0:
text += b'\0'
return text
def des_encrypt(plain_text, key):
des = DES.new(key.encode(), DES.MODE_ECB)
padded_text = pad(plain_text.encode())
encrypted_text = des.encrypt(padded_text)
return encrypted_text
def des_decrypt(cipher_text, key):
des = DES.new(key.encode(), DES.MODE_ECB)
decrypted_text = des.decrypt(cipher_text).rstrip(b'\0')
return decrypted_text
plain_text = 'tomorrow'
key = 'luckycat'
cipher_text = des_encrypt(plain_text, key)
print("密文为:", cipher_text)
decrypted_text = des_decrypt(cipher_text, key)
print("明文为:", decrypted_text.decode())
``
原文地址: https://www.cveoy.top/t/topic/holo 著作权归作者所有。请勿转载和采集!