使用tkinter实现 凯撒密码的破解和解密
from tkinter import *
def encrypt():
key = int(xls_text.get())
message = xls_text1.get()
str_list = list(message)
i = 0
while i <len(message):
if not str_list[i].isalpha():
str_list[i] = str_list[i]
else:
a = "A" if str_list[i].isupper() else "a"
str_list[i] = chr((ord(str_list[i]) - ord(a) + key) % 26 + ord(a))
i = i + 1
result = ''.join(str_list)
print(result)
xls_text2.set(result)
def decrypt():
key = int(xls_text.get())
message = xls_text1.get()
mode = 'decrypt'
message = message.upper()
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
translated = ''
for symbol in message:
if symbol in LETTERS:
num = LETTERS.find(symbol)
if mode == 'encrypt':
num = num+key
elif mode == 'decrypt':
num = num-key
if num > len(LETTERS):
num = num - len(LETTERS)
elif num < 0:
num = num + len(LETTERS)
translated = translated + LETTERS[num]
else:
translated =translated + symbol
result = translated.lower()
print(result)
xls_text2.set(result)
root = Tk()
root.geometry('800x700')
l1 = Label(root, text="请输入偏移量")
xls_text = StringVar()
xls = Entry(root, textvariable=xls_text)
l1.pack()
xls.pack()
l2 = Label(root, text="输入字符")
xls_text1 = StringVar()
xls1 = Entry(root, textvariable=xls_text1)
l2.pack()
xls1.pack()
B = Button(root, text="加密", command=encrypt)
B1 = Button(root, text="解密", command=decrypt)
B.pack()
B1.pack()
l_result = Label(root, text="结果")
l_result.pack()
xls_text2 = StringVar()
xls2 = Entry(root, textvariable=xls_text2)
xls_text2.set('')
xls2.pack()
root.mainloop()
运行结果:
thinker样式真的不好搞,就这样。