DimitrisTzakas/enigma-machine-simulator

GitHub: DimitrisTzakas/enigma-machine-simulator

一个使用 Python Tkinter 构建的 Enigma M3 密码机交互式桌面模拟器,用于教育和演示转子式机械加密原理。

Stars: 0 | Forks: 0

Enigma logo # Enigma 模拟器 一个带有 Tkinter GUI 的功能性 **Enigma M3 (Kriegsmarine)** 模拟器 —— 17 岁时从零开始构建,现已针对 Python 3 更新。 ![Python](https://img.shields.io/badge/Python-3.x-blue) ![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-green) ![License](https://img.shields.io/badge/License-MIT-green) German Wehrmacht Enigma machine
## 简介 该项目最初于 17 岁(希腊高中三年级 Γ' Λυκείου)时使用 Python 2 开发,最近更新到了 Python 3,同时保留了 2017 年的原始逻辑。该模拟器模拟了德国 Enigma M3 机器,可让你实时探索基于转子的加密过程。 ## 功能 - 可从 8 个转子 (I-VIII) 中进行选择 - 可设置每个转子的 Ring settings 和起始位置 - Reflector 选择 (B/C) - Plugboard 字母交换 - 实时按键加密及 UI 更新 - 可选的文本模式,用于加密长短语 - 按键事件音效 (Windows) ## 如何运行 在项目文件夹中打开终端并运行: ``` python src/main.py ``` 请确保已安装 Python 3.x,并保留 `assets/` 目录以提供音效和图像资源。 ## 环境要求 - Python 3.x - Tkinter(Python 自带) - 音效使用 `winsound`,仅在 Windows 上播放;该应用程序在 macOS/Linux 上运行时没有声音。 ## 工作原理 加密流程模拟了真实的机器:每个字母依次通过 plugboard、三个转子,经过 reflector 反射,再反向通过转子和 plugboard。步进(包括双步进异常)以及 VI-VIII 双缺口转子均得到了忠实模拟。

Enigma rotor contacts

有关算法的详细解析,请参阅 [`docs/ALGORITHM.md`](docs/ALGORITHM.md)。 ## 代码模块 - `src/main.py` — GUI 与用户交互 - `src/engine.py` — Enigma 机器逻辑 - `src/wckToolTips.py` — 提示框辅助工具 ## 注意事项 - 本仓库是旧源码存档的清理版本。 - 存档版本保留在 `archive/` 下,以供历史参考。 - 代码保留了原始风格,仅供学习参考,非生产级别。 ## 图片鸣谢 包含历史图片用于教育说明: - Enigma 转子照片 —— 来自 Wikimedia Commons: [针触点](https://commons.wikimedia.org/wiki/File:Enigma-rotor-pin-contacts.jpg) 和 [平整触点](https://commons.wikimedia.org/wiki/File:Enigma-rotor-flat-contacts.jpg)。 请查看各自的文件页面以获取原作者及许可信息。 ## 鸣谢 原始项目(2017年)由 Dimitris Tzakas 开发。2026年针对 Python 3 兼容性进行了更新。
标签:Python, Tkinter, 加密算法, 历史仿真, 密码学, 手动系统调用, 无后门, 桌面GUI