用一次性键盘破解Python问题
我是编程新手,正在尝试创建一个程序,在这个程序中,我会得到一个一次性的pad,并希望使用我的程序破译一个基本的消息文件。我在匹配ASCII和pad时遇到问题(我无法找出字符移位的“代码”或公式)。我们将非常感谢您的任何帮助。我将pad设置为9,因为idk知道如何移动字母。这是我收到的便笺簿: (JKKIAARZLXNPWAXQCCBTMUADQHVOLPRNYXVUHOVJWLJOSUCREJZHHWDFQNVGPPKJPGrxMRzTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTdTcTcTcTcTcTcTcTcTcTcTcTcTcTdUcTcTdUcTcTcTcTcTcTdUcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcSluhthxOfDeqyxWxVxVxWxWxWzNpZIGSQGPWxWzWzWzEyslGobuaveZrDkWyzZcAzGyzGyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyKyXIJJHFMMPSYZIVNAEMGZCWMGSEHMDEXRMFCGJPOYTPSHHLVFPOCndYCKYTKYTKOPZZZIVPQUPWPMUBAEJIFJVTfEJJVTfHmSvTfDfDfDfDfDfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfPfP 我将其保存为文本文件,然后读入用一次性键盘破解Python问题,python,Python,我是编程新手,正在尝试创建一个程序,在这个程序中,我会得到一个一次性的pad,并希望使用我的程序破译一个基本的消息文件。我在匹配ASCII和pad时遇到问题(我无法找出字符移位的“代码”或公式)。我们将非常感谢您的任何帮助。我将pad设置为9,因为idk知道如何移动字母。这是我收到的便笺簿: (JKKIAARZLXNPWAXQCCBTMUADQHVOLPRNYXVUHOVJWLJOSUCREJZHHWDFQNVGPPKJPGrxMRzTcTcTcTcTcTcTcTcTcTcTcTcTcTcTcT
msg = "This is an amazing secret message!"
pad = open("pad.txt", "r")
shift = 9
def shift_letter(c,shift):
pad_count = 0
code = ord(c)
if (code>=65) and (code<=90):
code = ((code-shift-39)%26)+65
pad_count = pad_count + 1
elif (code>=97) and (code<=122):
code = (code-shift-71)%26+97
return chr(code)
def shift_message(msg, shift):
seq = list(msg)
for i in range(0,len(msg)):
seq[i] = shift_letter(seq[i],shift)
return "".join(seq)
def encrypt(msg):
return shift_message(msg,shift)
def decrypt(msg):
return shift_message(msg,shift)
def main ():
encrypted_message = encrypt(msg)
print(encrypted_message)
final_message = decrypt(encrypted_message)
print(final_message)
if __name__ == "__main__":
main()
msg=“这是一条惊人的秘密消息!”
pad=open(“pad.txt”、“r”)
班次=9
def班次字母(c,班次):
焊盘计数=0
代码=作战需求文件(c)
如果(代码>=65)和(代码=97)和(代码您必须从pad文件中读取移位:
with open("pad.txt") as f:
pad = f.read()
def letter_ord(letter):
return ord(letter.upper())-ord("A")
def shift_letter(old, shift):
old = old.upper()
new_ord = ord(old)+shift
if new_ord > ord("Z"):
new_ord -= 26
elif new_ord < ord("A"):
new_ord += 26
return chr(new_ord)
def crypt(text, mode=1): # mode is 1 for encrypt and -1 for decrypt
res = ""
for t_text, t_pad in zip(text, pad):
res += shift_letter(t_text, letter_ord(t_pad)*mode)
return res
def encrypt(text):
return crypt(text, 1)
def decrypt(text):
return crypt(text, -1)
打开(“pad.txt”)作为f:
pad=f.read()
def信函ord(信函):
返回ord(字母.upper())-ord(“A”)
def班次字母(旧,班次):
old=old.upper()
新订单=订单(旧)+班次
如果新命令>命令(“Z”):
新单词-=26
elif new_ord
改进了格式设置“因为idk知道什么或如何移动字母”-你这是什么意思?他们想要的是一次性键盘,而不是Caesar。@bereal我现在把它改为一次性键盘。