|
|
@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
from tkinter import LEFT, RIGHT, Button, Entry, StringVar, ttk
|
|
|
|
|
|
|
|
from tkinter.filedialog import askopenfilename
|
|
|
|
|
|
|
|
from tkinter.tix import Tk # 升级的组合控件包
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from client_createcip import createcip
|
|
|
|
|
|
|
|
from client_sendcipkey import sendcipkey
|
|
|
|
|
|
|
|
from client_senddata import senddata
|
|
|
|
|
|
|
|
from client_sendsig import sendsig
|
|
|
|
|
|
|
|
from client_twokey import client_twokey
|
|
|
|
|
|
|
|
from ttkbootstrap import Style
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def init_window():
|
|
|
|
|
|
|
|
# 创建窗口
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
global root
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
root = Tk()
|
|
|
|
|
|
|
|
style = Style(theme='minty')
|
|
|
|
|
|
|
|
root.title("客户端")
|
|
|
|
|
|
|
|
root.geometry("700x500")
|
|
|
|
|
|
|
|
root.configure(bg='white')
|
|
|
|
|
|
|
|
root.resizable(width=True, height=True) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
|
|
|
|
|
|
|
|
root.tk.eval("package require Tix")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 创建文本框
|
|
|
|
|
|
|
|
path = StringVar()
|
|
|
|
|
|
|
|
path.set("请选择文件")
|
|
|
|
|
|
|
|
ttk.Entry(root, textvariable=path, width=25,bootstyle="info").place(x=30,y=120,width=180,height=30)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def selectPath():
|
|
|
|
|
|
|
|
# 选择文件path_接收文件地址
|
|
|
|
|
|
|
|
path_ = askopenfilename()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 通过replace函数替换绝对文件地址中的/来使文件可被程序读取
|
|
|
|
|
|
|
|
# 注意:\\转义后为\,所以\\\\转义后为\\
|
|
|
|
|
|
|
|
path_ = path_.replace("/", "\\\\")
|
|
|
|
|
|
|
|
# path设置path_的值
|
|
|
|
|
|
|
|
path.set(path_)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
|
|
|
ttk.Button(root, text="选择文件", command=selectPath,bootstyle="info").place(x=220,y=120)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
model = StringVar()
|
|
|
|
|
|
|
|
model.set("选择加密模式")
|
|
|
|
|
|
|
|
values = ["DES", "AES_ECB", "AES_CBC"]
|
|
|
|
|
|
|
|
ttk.Combobox(
|
|
|
|
|
|
|
|
master=root, # 父容器
|
|
|
|
|
|
|
|
height=3, # 高度,下拉显示的条目数量
|
|
|
|
|
|
|
|
width=15, # 宽度
|
|
|
|
|
|
|
|
state="normal", # 设置状态 normal(可选可输入)、readonly(只可选)、 disabled
|
|
|
|
|
|
|
|
cursor="arrow", # 鼠标移动时样式 arrow, circle, cross, plus... # 字体
|
|
|
|
|
|
|
|
textvariable=model, # 通过StringVar设置可改变的值
|
|
|
|
|
|
|
|
values=values,
|
|
|
|
|
|
|
|
bootstyle="info",# 设置下拉框的选项
|
|
|
|
|
|
|
|
).place(x=30,y=210,width=180,height=30)
|
|
|
|
|
|
|
|
ttk.Button(
|
|
|
|
|
|
|
|
root,text="生成发送端公私钥",command=client_twokey,bootstyle="default-outline"
|
|
|
|
|
|
|
|
).place(x=400, y=50, width=200, height=60)
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
|
|
|
ttk.Button(
|
|
|
|
|
|
|
|
root,text="生成数字信封文件",command=lambda: createcip(path=path.get(), op=model.get()),
|
|
|
|
|
|
|
|
bootstyle="default-outline").place(x=400,y=140,width=200,height=60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ttk.Button(root, text="发送加密对称密钥", command=sendcipkey,
|
|
|
|
|
|
|
|
bootstyle="default-outline").place(x=400, y=230, width=200, height=60)
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
|
|
|
ttk.Button(root, text="发送加密文件", command=senddata,bootstyle="default-outline").place(x=400, y=320, width=200, height=60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
|
|
|
ttk.Button(root, text="发送签名", command=sendsig,bootstyle="default-outline").place(x=400, y=410, width=200, height=60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 创建按钮
|
|
|
|
|
|
|
|
ttk.Button(root, text="退出", command=root.quit,bootstyle="info").place(x=30,y=300,width=180,height=30)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 进入消息循环
|
|
|
|
|
|
|
|
root.mainloop()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
init_window()
|