我在做凯撒密码,这是我的密码
def getinputfile(message):
list_ = []
with open(message, 'r') as lines:
content = lines.readlines()
for i in content:
list_.append(i.strip())
return list_
def decrpyt(list_):
decrypt_num = []
decrypt_list = []
sec_message = list_[1]
sec_key = int(list_[0])
for letter in sec_message :
uni_num = (ord(letter) - sec_key)
decrypt_num.append(uni_num)
for unicode in decrypt_num:
uni_letter = chr(unicode)
decrypt_list.append(uni_letter)
return decrypt_list
def main():
message = getinputfile('secretMessage1.txt')
decrpyted_message = decrpyt(message)
print(''.join(decrpyted_message))
main()
我尝试使用%来解决这个问题(我也不是100%确定如何使用模运算符),但我没有成功。
文本文件的内容是:
18
UgFYjSLMDsLAGFk
移动每个字母,使您旋转的字母表映射到0-25,应用转换,执行%26
,然后将其移回。
>>> def decrypt(message: str, key: int) -> str:
... def decrypt_letter(letter: str) -> str:
... alpha = ord('a' if letter.islower() else 'A')
... return chr((ord(letter) - alpha - key) % 26 + alpha)
... return ''.join(decrypt_letter(c) for c in message)
...
>>> with open('secretMessage1.txt') as file:
... key, message = file.readlines()
... print(decrypt(message.strip(), int(key.strip())))
...
CoNGrATULaTIONs
(编辑)如果输出实际上不需要保留大小写,那么decrypt
函数将变得简单得多--只需将消息小写,然后可以忽略islower()
检查。
>>> def decrypt(message: str, key: int) -> str:
... return ''.join(
... chr((ord(c) - ord('a') - key) % 26 + ord('a'))
... for c in message.lower()
... )
...
>>> decrypt("UgFYjSLMDsLAGFk", 18)
'congratulations'
我需要编写一个python、hacker和wow这些单词的加密文本,并且使用不包括使用RAW_INPUT的python中的凯撒密码,距离为3。这是我到目前为止,但我不断得到一个错误消息,我不知道如何修复它。
问题内容: 我通过java进行了凯撒密码,它可以运行,但是在用户输入密钥后不对任何内容进行加密! 这是我的代码 跑: 问题答案: 使用效率不是很高…您可以对值进行整数运算以获得其索引。 我在代码中添加了注释以解释更多信息,但这就是我想出的。 输出应该是这样的
示例:返回。如果给定的整数值小于0或大于26,则应返回空字符串。 我的问题是,作为回报,它只给我真或假。如何解决这个问题:该方法应该返回一个字符串,其中每个字符都是根据指定的整数值移动的。
我正在为我的计算机科学课做凯撒密码,我被卡住了。我已经想出了如何满足项目所需的一些元素,比如空格,当加密密钥设置为一个固定的数字时,它就可以工作了。然而,其中一个要求是,当你点击“Z”时,字母表会环绕,用户可以输入他们自己的加密密钥值。它还需要加密和解密消息。任何提示,任何人可以给我关于哪里我走错了,将不胜感激!以下是我目前所拥有的:(我是在Eclipse中制作的)
基本上,我必须创建一个凯撒密码,它只是用一个int'k'以外的字母替换给出的每个字母。这需要2个命令行参数:“./caesar”和“k”,它们由用户提供。它工作得很好;但有一个问题: 它将“Barfoo”加密为“Eduirr”,使用3作为正确的密钥;将“Barfoo”加密为“Fevjss”,使用4作为正确的密钥 但是它不是用65作为密钥将“barfoo”加密为“onesbb”,而是将其加密为“oo