2015-03-25 133 views
0

凱撒密碼基本上將明文的每個字母移動一個固定的數字。 例如,如果使用密鑰2,則會編碼Sourpuss這個詞。Uqwrtrwuu破解凱撒密碼的程序

該文本只能包含可打印的ASCII字符(32-126,用於我們的目的)。實施一個算法來破解這段代碼。

我需要解密這樣的: 「T X $ R & 1〜ZXY & 1! '} [R &ž%21J!'」 R %% 1TZedBEAB「

這裏是我的代碼:?

def decoded(s): 
    for i in range(1,95): 
     string = "" 
     for char in s: 
      if(ord(char) + i > 126): 
       charc = (ord(char) + i) - 94 
       string = string + chr(charc) 
      else: 
       charc = ord(char) + i 
       string = string + chr(charc) 

     print(string) 
decoded("T! x$r&'}r&z! %21j!'1~zxy&1\"r%%1TZedBEAB?") 

正如你可以看到我添加了一個\,但我不認爲這會改變我的答案?

的問題是,它不是打印出一個正確的答案。有人能告訴我什麼是錯的用我的代碼或只是poi nt我在正確的方向。

+1

你可以添加當前的輸出和預期的輸出嗎? – 2015-03-25 10:06:43

+0

啊,是的,但你有一個錯誤的錯誤。 – 2015-03-25 10:21:07

+0

你確定這是正確的字符串嗎? – 2015-03-25 10:34:07

回答

0

關鍵#78:恭喜!您可能會通過CITS1401。

所有你需要做的是在第6行

改變-94-95如果你得到127減去94,你33,你希望它是32(作爲安蒂·哈帕拉指出)。

如果你倒退並採取ord(char) - i < 32,並添加95如果它的真實,你會得到密鑰#17。

+0

感謝您的回答 – 2015-03-25 14:07:02