Python 实现 DES 加解密:固定 8 字符明文下密文变化探究及代码示例
以下是使用 Python 实现 DES 算法的示例代码,DES 算法通常处理固定长度为 8 字节(64 位)的数据块: ```python from Crypto.Cipher import DES def encrypt_des(message, key): cipher = DES.new(key, DES.MODE_ECB) padded_message = pad_message(message) ciphertext = cipher.encrypt(padded_message) return ciphertext def decrypt_des(ciphertext, key): cipher = DES.new(key, DES.MODE_ECB) plaintext = cipher.decrypt(ciphertext) unpadded_plaintext = unpad_message(plaintext) return unpadded_plaintext def pad_message(message): padding_length = 8 - (len(message) % 8) padding = chr(padding_length) * padding_length return message + padding.encode() def unpad_message(message): padding_length = message[-1] return message[:-padding_length] # 示例用法 key = b'secretkey' # 必须是 8 字节 message = "HelloWorld" encrypted = encrypt_des(message.encode(), key) print("加密后的密文:", encrypted) decrypted = decrypt_des(encrypted, key) print("解密后的明文:", decrypted.decode()) ``` 需要注意的是,对于不同长度的明文,如果小于 8 字节,会进行填充;如果大于 8 字节,需要分块处理。 在实际应用中,使用更现代和安全的加密算法通常是更好的选择,因为 DES 算法已经相对较旧且安全性存在一定问题。 ######[AI写代码神器 | 360点数解答 | 2024-09-24 18:29:54]
- Python 实现 DES 加密算法编程实验:从原理到单步调试全解析(字节豆包 | 4096点数解答 | 2025-11-09 22:06:30)88
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)26
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)490
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)57
- Python实现AES加密解密:含代码示例与关键注意点(字节豆包 | 836点数解答 | 2025-10-14 16:35:32)79
- C++实现输出指定奇数阶中间为#的矩形图案(字节豆包 | 380点数解答 | 2026-03-20 19:14:24)40
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)373
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)443
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)435
- C语言:按特定格式输入并格式化输出整数、实数和字符(字节豆包 | 103点数解答 | 2024-10-24 11:12:53)418
- Python 实现按指定字符位置逆序字符串,处理多种边界情况!(字节豆包 | 197点数解答 | 2024-11-22 16:55:09)335
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)286