Caesar密码基本上将每个明文字母移动一个固定的数字。 例如,如果使用键2,则单词Sourpuss将被编码为Uqwrtrwuu
文本只能包含可打印的ASCII字符(32-126,用于我们的目的)。实现破解此代码的算法。
我需要解密这个:" T! X $的R&'}的R& Z! %21J'!1〜ZXY&安培; 1" 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?")
正如您所看到的,我添加了\
,但我认为这不会改变我的答案?
问题在于它没有打印出正确的答案。有人可以告诉我我的代码有什么问题,或者只是指出我正确的方向。
答案 0 :(得分:0)
关键#78:恭喜!您可以通过CITS1401。
您只需在第6行将-94
更改为-95
。
如果你得到127并减去94,你得到33,你希望它是32.(正如Antti Haapala指出的那样)。
如果你倒退并取ord(char) - i < 32
,如果真的那么加95,你就会得到#17键。
答案 1 :(得分:0)
这是一个可以加密和解密的代码。它甚至返回格式! (例如资本,下)
(10, 3, 3)