Enigma 的 Java 实现以及用于解密它的现代攻击方法。
如果您已安装 Java,您可以自行编译和运行此代码。为了方便,我建议使用 IntelliJ 或类似的 IDE。社区版是免费的,它会使编辑、编译和运行代码变得更加容易。如果您想自己运行它,首先请安装 Java,然后按照以下说明操作。假设您已安装了 Java 和 git。
git clone https://github.com/mikepound/enigma.git
cd enigma
``` 将 src 目录中的所有 java 文件编译到 bin 目录中 ```
javac -d bin -sourcepath src src/com/mikepound/Main.java
``` 也将 n-gram 统计信息复制到 bin 目录中 ```
cp -r resources/data bin/data
``` 在 main 中运行 Enigma 代码 ```
java -cp bin com.mikepound.Main
``` ## Enigma 机器 Enigma 机器的代码位于 `enigma` 包中。`analysis` 包中包含用于对密文进行攻击的代码。该攻击使用位于 `analysis.fitness` 包中的各种适应度函数,这些函数尝试衡量测试解密的有效性。最后,`Main.java` 文件中包含了我在视频中执行的实际攻击,因此其中还包含了许多您可以用来运行自己的攻击的示例。
### 创建 Java Enigma 代码本身相当简单暂无开放 Issues,或尚未同步最近议题。