这是一个比我之前的问题更广泛但相关的问题。
我想在 Ruby 中实现老式的加密系统,例如ADFGVX、VIC 密码等,主要是为了好玩。这些密码系统建立在更通用的系统之上,如替换(单字母,如 Caesar 或多字母,如 Vigenere)和转置(简单,双)。我的问题实际上是如何创建类层次结构来处理密码系统和密钥。
像 Vigenere < Substitution < SimpleCipher 之类的东西?钥匙呢?一些替换键在使用前被压缩(“ARABESQUE”变成“ARBESQU”),而大多数转置键没有,依此类推。
现在,我有一个非常基本的设计文档(我说basic),我想了想,我似乎找不到令人满意的方法,所以我来这里是为了你的智慧。
实现将在 Ruby 中进行,但除非设计必须使用多重继承,否则它与 Ruby 本身无关。
Mercurial 中的概念证明(尚未可运行且可能错误)。