Python 实现移位与仿射密码:精准加密解密及关键逻辑解析
以下是用 Python 实现的古典密码中的移位密码和仿射密码的代码: ```python def is_valid_s(k): # 如果密钥 k 是在合理范围内(例如 0 到 25 之间),则认为合理 if 0 <= k <= 25: return True else: return False def encrypt_s(p, k): if is_valid_s(k): result = "" for char in p: if char.isalpha(): if char.islower(): new_char = chr(((ord(char) - ord('a') + k) % 26) + ord('a')) else: new_char = chr(((ord(char) - ord('A') + k) % 26) + ord('A')) result += new_char else: result += char return result else: return None def decrypt_s(c, k): if is_valid_s(k): result = "" for char in c: if char.isalpha(): if char.islower(): new_char = chr(((ord(char) - ord('a') - k + 26) % 26) + ord('a')) else: new_char = chr(((ord(char) - ord('A') - k + 26) % 26) + ord('A')) result += new_char else: result += char return result else: return None def is_valid_a(a, b): # 这里可以添加更复杂的判断逻辑,比如 a 和 b 的取值范围等 if a!= 0 and b!= 0: return True else: return False def encrypt_a(p, a, b): if is_valid_a(a, b): result = "" for char in p: if char.isalpha(): if char.islower(): new_char = chr(((a * (ord(char) - ord('a')) + b) % 26) + ord('a')) else: new_char = chr(((a * (ord(char) - ord('A')) + b) % 26) + ord('A')) result += new_char else: result += char return result else: return None def decrypt_a(c, a, b): if is_valid_a(a, b): # 计算 a 的逆元 inv_a = pow(a, -1, 26) result = "" for char in c: if char.isalpha(): if char.islower(): new_char = chr(((inv_a * ((ord(char) - ord('a')) - b + 26)) % 26) + ord('a')) else: new_char = chr(((inv_a * ((ord(char) - ord('A')) - b + 26)) % 26) + ord('A')) result += new_char else: result += char return result else: return None ``` 对于这段代码,您需要注意以下 3 点逻辑: 1. 对于密钥的有效性判断要准确,确保加密和解密过程中使用的密钥是合法的。 2. 在加密和解密的计算过程中,要注意处理字符的大小写以及边界情况。 3. 计算逆元时要确保计算的准确性,以保证解密能够正确进行。 ######[AI写代码神器 | 798点数解答 | 2024-12-18 15:55:47]
- Python实现AES加密解密:含代码示例与关键注意点(字节豆包 | 836点数解答 | 2025-10-14 16:35:32)65
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)458
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)414
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)405
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)274
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)305
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)142
- 数字化制图综合平台:引领烟草物流及多领域设计革新 在企业数字化转型的时代浪潮中,数字化制图技术创新应用成为产业升级与提升竞争力的关键。企业对高效、精准、智能化设计解决方案需求迫切,构建集二维到三维正逆向工程快捷化、干涉检测可视化、设备明细数据提取自动化以及设备模块模型库于一体的综合平台意义重大。 此平台集成先进数字化制图工具与智能算法,可实现二维设计到三维建模的无缝转换,大大缩短设计周期。正逆向工程能快速切换,满足不同场景设计需求。内置干涉检测功能可实时监测设计潜在冲突,保障设计方案可行与安全。设备明细数据自动提取提高设计准确性与效率。设备模块模型库为设计师提供丰富资源,支持设计标准化与模块化,加速项目推进。 整体来看,该综合平台的应用极大促进了烟草物流行业及更广泛领域的技术创新与效率提升。在烟草物流方案图纸智能化设计中,它提升了图纸设计效率与质量,使设计工作更加高效、精准。对于企业而言,这一平台带来显著竞争优势,能帮助企业在数字化转型中脱颖而出,在激烈的市场竞争中占据有利地位,推动整个行业向更高效、更智能的方向发展。 (阿里通义 | 216点数解答 | 2024-10-30 20:30:51)170
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)389
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)413