如何在这个特定的例子中使用模递减?
我有这段代码:如何在这个特定的例子中使用模递减?
[删除,因为不需要抄袭]
这是二战期间使用的恩尼格玛密码机的简化版本。此代码的解密部分不能正常工作,并返回HFFDGRHC而不是HELLOBOY。有谁知道如何解决这个问题?
作业:模仿Enigma密码:ENIGMA机器的扭曲是实际上有26个不同的旋转密码,并且根据前一个字母的输出为每个字母选择了一个新的密码。提示:添加前一个字母和以前的加密密钥的和。使用这些信息,请指出如何解密而不是加密。
的线索是在这里:
添加以前的信和以前的加密密钥的总和。
您没有将上一个密钥添加到新密钥中。
变化的关键轧线:
key = (key + newLetter) % 26;
输出现在是"HELLOBOY"
这有什么原因可以工作吗? – ShadowWolf
因为'sum'部分是作为加密而不是解密的暗示给出 – ShadowWolf
@ShadowWolf显然(对我来说)如果密钥在加密期间滚动,它也必须滚动以进行解密。我承认猜测'%26'部分。 – Bohemian
定义“没有得到很好的工作”的 - 什么是输入,预期的输出,与实际输出? –
输入是键= 1,文本=“IZXVWKLW”。预期的产量是HELLOBOY,而是输出HFFDGRHC。 – ShadowWolf