可以在加法密码加密窗口中添加一个导入文件的按钮,点击后弹出文件对话框,选择需要加密的txt文件,然后将文件内容填入明文输入框中。

以下是修改后的代码:

import tkinter as tk from tkinter import filedialog

def create_new_window1(): #处理加密按钮的点击事件 def on_encrypt(): plaintext = e1.get() key = e2.get() ciphertext = add_encrypt(plaintext, key) e3.delete(0, tk.END) e3.insert(0, ciphertext) #处理解密按钮的点击事件 def on_decrypt(): ciphertext = e3.get() key = e2.get() plaintext = add_decrypt(ciphertext, key) e1.delete(0, tk.END) e1.insert(0, plaintext) #处理导入文件按钮的点击事件 def on_import(): file_path = filedialog.askopenfilename() if file_path: with open(file_path, 'r') as f: content = f.read() e1.delete(0, tk.END) e1.insert(0, content) new_window = tk.Toplevel(root_new) new_window.title('加法密码加密\解密窗口') new_window.geometry('2000x1000') label1=tk.Label(new_window, text="明文") label2=tk.Label(new_window, text="密钥") label3=tk.Label(new_window, text="密文") e1=tk.Entry(new_window) e2=tk.Entry(new_window) e3=tk.Entry(new_window) button1=tk.Button(new_window, text="加密", command=on_encrypt) button2=tk.Button(new_window, text="解密", command=on_decrypt) button3=tk.Button(new_window, text='导入文件', command=on_import) button4=tk.Button(new_window, text='关闭', command=new_window.destroy) label1.place(x=500, y=250) label2.place(x=500, y=300) label3.place(x=500, y=350) e1.place(x=550, y=250) e2.place(x=550, y=300) e3.place(x=550, y=350) button1.place(x=550, y=400) button2.place(x=650, y=400) button3.place(x=750, y=250) button4.place(x=575,y=450,width=100,height=60)

def create_new_window2(): #处理加密按钮的点击事件 def on_encrypt(): plaintext = e1.get() key = e2.get() ciphertext = mul_encrypt(plaintext, key) e3.delete(0, tk.END) e3.insert(0, ciphertext) #处理解密按钮的点击事件 def on_decrypt(): ciphertext = e3.get() key = e2.get() plaintext = mul_decrypt(ciphertext, key) e1.delete(0, tk.END) e1.insert(0, plaintext) new_window = tk.Toplevel(root_new) new_window.title('乘法密码加密\解密窗口') new_window.geometry('2000x1000') label1=tk.Label(new_window, text="明文") label2=tk.Label(new_window, text="密钥") label3=tk.Label(new_window, text="密文") e1=tk.Entry(new_window) e2=tk.Entry(new_window) e3=tk.Entry(new_window) button1=tk.Button(new_window, text="加密", command=on_encrypt) button2=tk.Button(new_window, text="解密", command=on_decrypt) button3=tk.Button(new_window, text='关闭', command=new_window.destroy) label1.place(x=500, y=250) label2.place(x=500, y=300) label3.place(x=500, y=350) e1.place(x=550, y=250) e2.place(x=550, y=300) e3.place(x=550, y=350) button1.place(x=550, y=400) button2.place(x=650, y=400) button3.place(x=575,y=450,width=100,height=60)

def create_new_window3(): #处理加密按钮的点击事件 def on_encrypt(): plaintext = e1.get() key = e2.get() ciphertext = rot_encrypt(plaintext, key) e3.delete(0, tk.END) e3.insert(0, ciphertext) #处理解密按钮的点击事件 def on_decrypt(): ciphertext = e3.get() key = e2.get() plaintext = rot_decrypt(ciphertext, key) e1.delete(0, tk.END) e1.insert(0, plaintext) new_window = tk.Toplevel(root_new) new_window.title('转轮机密码加密\解密窗口') new_window.geometry('2000x1000') label1=tk.Label(new_window, text="明文") label2=tk.Label(new_window, text="密钥") label3=tk.Label(new_window, text="密文") e1=tk.Entry(new_window) e2=tk.Entry(new_window) e3=tk.Entry(new_window) button1=tk.Button(new_window, text="加密", command=on_encrypt) button2=tk.Button(new_window, text="解密", command=on_decrypt) button3=tk.Button(new_window, text='关闭', command=new_window.destroy) label1.place(x=500, y=250) label2.place(x=500, y=300) label3.place(x=500, y=350) e1.place(x=550, y=250) e2.place(x=550, y=300) e3.place(x=550, y=350) button1.place(x=550, y=400) button2.place(x=650, y=400) button3.place(x=575,y=450,width=100,height=60)

def login(): # 获取用户名和密码 username = entry_username.get() password = entry_password.get() # 校验用户名和密码是否正确,这里简单判断一下是否为空 if username and password: # 登录成功后隐藏当前窗口,创建另一个窗口(即root) root_new.deiconify() top.withdraw() # 隐藏登录窗口 else: label_status.config(text="用户名或密码不能为空!", fg="red")

创建主窗口

root_new= tk.Tk() root_new.title("加密解密工具") root_new.geometry('2000x1000')

创建Label、Button等控件并添加到主窗口中

button1=tk.Button(root_new, text='加法密码', command=create_new_window1) button2=tk.Button(root_new, text='乘法密码', command=create_new_window2) button3=tk.Button(root_new, text='转轮机密码', command=create_new_window3) button1.place(relx=0.375, rely=0.1, relwidth=0.2, relheight=0.1) button2.place(relx=0.375, rely=0.3, relwidth=0.2, relheight=0.1) button3.place(relx=0.375, rely=0.5, relwidth=0.2, relheight=0.1)

隐藏主窗口

root_new.withdraw()

创建登录窗口

top = tk.Toplevel() top.title("登录") top.geometry("250x150")

创建Label、Entry、Button等控件并添加到登录窗口中

label_username = tk.Label(top, text='用户名:') label_username.grid(row=0, column=0, sticky=tk.W) entry_username = tk.Entry(top) entry_username.grid(row=0, column=1) label_password = tk.Label(top, text='密 码:') label_password.grid(row=1, column=0, sticky=tk.W) entry_password = tk.Entry(top, show="*") entry_password.grid(row=1, column=1) button_login = tk.Button(top, text='登录', command=login) button_login.grid(row=2, column=1) label_status = tk.Label(top, text="") label_status.grid(row=3, column=1)

显示登录窗口并进入主循环

top.mainloop(

import tkinter as tkdef create_new_window1 #处理加密按钮的点击事件 def on_encrypt plaintext = e1get key = e2get ciphertext = add_encryptplaintext key e3delete0 tkEND e3in

原文地址: https://www.cveoy.top/t/topic/g57b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录