2017-11-25 105 views
2

我有这段代码:如何在这个特定的例子中使用模递减?

[删除,因为不需要抄袭]

这是二战期间使用的恩尼格玛密码机的简化版本。此代码的解密部分不能正常工作,并返回HFFDGRHC而不是HELLOBOY。有谁知道如何解决这个问题?

作业:模仿Enigma密码:ENIGMA机器的扭曲是实际上有26个不同的旋转密码,并且根据前一个字母的输出为每个字母选择了一个新的密码。提示:添加前一个字母和以前的加密密钥的和。使用这些信息,请指出如何解密而不是加密。

+0

定义“没有得到很好的工作”的 - 什么是输入,预期的输出,与实际输出? –

+0

输入是键= 1,文本=“IZXVWKLW”。预期的产量是HELLOBOY,而是输出HFFDGRHC。 – ShadowWolf

回答

1

的线索是在这里:

添加以前的信和以前的加密密钥的总和。

您没有将上一个密钥添加到新密钥中。

变化的关键轧线:

key = (key + newLetter) % 26; 

输出现在是"HELLOBOY"

+0

这有什么原因可以工作吗? – ShadowWolf

+0

因为'sum'部分是作为加密而不是解密的暗示给出 – ShadowWolf

+0

@ShadowWolf显然(对我来说)如果密钥在加密期间滚动,它也必须滚动以进行解密。我承认猜测'%26'部分。 – Bohemian

相关问题