2017-11-25 101 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

相關問題