Python Caesar Cypher脚本

时间:2018-11-30 14:29:53

标签: python encryption

# Paste the text you want to encipher (or decipher)
original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")

# Declare (or guess) the offset. Positive or negative ints allowed
offset = int(input("Offset: 12"))

ciphered = ''

for c in original:
    c_ascii = ord(c)

    if c.isupper():
        c = chr((ord(c) + offset - ord('A')) % 26 + ord('A'))
    elif c.islower():
        c = chr((ord(c) + offset - ord('a')) % 26 + ord('a'))

    ciphered += c

# makes a new file, caesar.txt, in the same folder as this python script
with open("caesar.txt", 'w') as f:
    f.write(ciphered)

“”“ 这是我们的老师为帮助我们解密Caeser Cyphers而编写的一些代码,但是由于某些原因,我仍然将我的输入作为输出,为什么不起作用?老师确认它奏效。 “” “” 此示例句子的12个字符的移位是“我在美国抚养了我的女儿”(我需要对字母大写敏感。)-该代码还将以相同的12移位来删除更多的句子 “”“

2 个答案:

答案 0 :(得分:1)

这个问题让我有些困惑,所以这个答案可能是错误的,但是如果您想解码消息,只需将偏移量前的+换成-(每种情况)。您应该以此结束:

# Paste the text you want to encipher (or decipher)
original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")

# Declare (or guess) the offset. Positive or negative ints allowed
offset = int(input("Offset: 14"))


ciphered = ''

for c in original:
    c_ascii = ord(c)

if c.isupper():
    c = chr((ord(c) - offset - ord('A')) % 26 + ord('A'))
elif c.islower():
    c = chr((ord(c) - offset - ord('a')) % 26 + ord('a'))

ciphered += c

# makes a new file, caesar.txt, in the same folder as this python script
with open("caesar.txt", 'w') as f:
    f.write(ciphered)

这将对消息进行解码,当计算机询问用户是编码还是解码时,您只需添加一个选项即可。请告诉我这是否是您想要的东西,如果您需要,我很乐意尝试遍历更多代码。

答案 1 :(得分:1)

我认为您运行不正确。看来您试图将输入内容直接添加到代码中:

original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")
....
offset = int(input("Offset: 12"))

看看“输入”的帮助

  

有关在模块内置中输入内置功能的帮助:

     

输入(...)      输入([提示])->值

     

等效于eval(raw_input(prompt))。

所以input()的参数是提示,并且所有文本都被当作输入,而是显示为提示...

尝试从命令行运行它,然后在提示符处输入您的输入。当我运行它时,这对我有用。