python的tkinter实现 凯撒密码的加解密
时间: 2023-10-31 18:04:34 浏览: 156
下面是一个简单的凯撒密码加解密程序,使用Python的Tkinter库来实现图形用户界面。
```python
import tkinter as tk
def caesar_cipher(text, shift):
'''
凯撒密码加密算法
'''
result = ''
for char in text:
if char.isalpha():
num = ord(char) + shift
if char.isupper():
if num > ord('Z'):
num -= 26
elif num < ord('A'):
num += 26
elif char.islower():
if num > ord('z'):
num -= 26
elif num < ord('a'):
num += 26
result += chr(num)
else:
result += char
return result
def encrypt():
'''
加密按钮事件处理函数
'''
text = input_text.get('1.0', 'end-1c')
shift = int(shift_entry.get())
result = caesar_cipher(text, shift)
output_text.delete('1.0', 'end')
output_text.insert('1.0', result)
def decrypt():
'''
解密按钮事件处理函数
'''
text = input_text.get('1.0', 'end-1c')
shift = int(shift_entry.get())
result = caesar_cipher(text, -shift)
output_text.delete('1.0', 'end')
output_text.insert('1.0', result)
# 创建主窗口
root = tk.Tk()
root.title('凯撒密码加解密')
# 创建输入框和标签
input_label = tk.Label(root, text='输入文本:')
input_label.grid(row=0, column=0, padx=5, pady=5)
input_text = tk.Text(root, height=10, width=50)
input_text.grid(row=0, column=1, columnspan=2, padx=5, pady=5)
# 创建位移量输入框和标签
shift_label = tk.Label(root, text='位移量:')
shift_label.grid(row=1, column=0, padx=5, pady=5)
shift_entry = tk.Entry(root)
shift_entry.grid(row=1, column=1, padx=5, pady=5)
# 创建加密和解密按钮
encrypt_button = tk.Button(root, text='加密', command=encrypt)
encrypt_button.grid(row=2, column=1, padx=5, pady=5)
decrypt_button = tk.Button(root, text='解密', command=decrypt)
decrypt_button.grid(row=2, column=2, padx=5, pady=5)
# 创建输出框和标签
output_label = tk.Label(root, text='输出结果:')
output_label.grid(row=3, column=0, padx=5, pady=5)
output_text = tk.Text(root, height=10, width=50)
output_text.grid(row=3, column=1, columnspan=2, padx=5, pady=5)
# 进入消息循环
root.mainloop()
```
运行程序后,会弹出一个窗口,用户可以在输入框中输入要加密或解密的文本,选择位移量,然后点击加密或解密按钮,程序会在输出框中显示加密或解密后的结果。
阅读全文