Python Tkinter 数据安全加密解密工具 - 仿射密码、栅栏密码
import tkinter as tk from tkinter import *
设置窗口及布局
root=tk.Tk() root.title('数据安全') # 给窗口命名 root.geometry('3000x2000') # 设置窗口的大小 lb1 =Label(root, text='加密解密') # root是主体,text是内容 lb1.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1) # 设置位置 aaa=Entry(root) aaa.place(relx=0.3, rely=0.2, relwidth=0.8, relheight=0.1) bbb=Entry(root) bbb.place(relx=0.3, rely=0.3, relwidth=0.8, relheight=0.1) ccc=Entry(root) ccc.place(relx=0.3, rely=0.4, relwidth=0.7, relheight=0.1) btn1 = Button(root, text='仿射密码', command=lambda:fsjm()) btn1.place(relx=0, rely=0.2, relwidth=0.1, relheight=0.1) btn2 = Button(root, text='栅栏密码', command=lambda:zljm()) btn2.place(relx=0, rely=0.3, relwidth=0.1, relheight=0.1) btn3 = Button(root, text='DES算法') btn3.place(relx=0, rely=0.4, relwidth=0.1, relheight=0.1) btn4 = Button(root, text='加密',command=lambda:jiami()) btn4.place(relx=0.1, rely=0.2, relwidth=0.1, relheight=0.1) btn5 = Button(root, text='解密',command=lambda:jiemi()) btn5.place(relx=0.2, rely=0.2, relwidth=0.1, relheight=0.1) btn6 = Button(root, text='加密',command=lambda:jiami1()) btn6.place(relx=0.1, rely=0.3, relwidth=0.1, relheight=0.1) btn7 = Button(root, text='解密',command=lambda:jiemi1()) btn7.place(relx=0.2, rely=0.3, relwidth=0.1, relheight=0.1) btn8 = Button(root, text='加密') btn8.place(relx=0.1, rely=0.4, relwidth=0.1, relheight=0.1) btn9 = Button(root, text='解密') btn9.place(relx=0.2, rely=0.4, relwidth=0.1, relheight=0.1) btn10 = Button(root, text='退出', command=root.destroy) btn10.place(relx=0.9, rely=0.2, relwidth=0.1, relheight=0.3)
def fsjm(text,key,mode): for i in key: a=int(key[0]) b=int(key[1]) if mode=='encrypt': return ''.join([chr(((a*(ord(t)-65)+b)%26)+65) if t.isalpha() else t for t in text.upper()]) elif mode=='decrypt': a_inv=pow(a, -1, 26) return ''.join([chr(((a_inv*(ord(t)-65-b))%26)+65) if t.isalpha() else t for t in text.upper()])
def jiami(): mingwen=aaa.get() key=bbb.get().split(',') miwen=fsjm(mingwen,key,'encrypt') ccc.delete(0,tk.END) ccc.insert(0,miwen)
def jiemi(): miwen=ccc.get() key=bbb.get().split(',') new_mingwen=fsjm(miwen,key,'decrypt') aaa.delete(0,tk.END) aaa.insert(0,new_mingwen)
def zljm(text,key,mode,miwen=''): key1=int(key) if mode=='encrypt': miwen='' n=0 while n<key1: m=0 while m<len(text)/key1: if (mkey1+n)<len(text): miwen=miwen+text[int(mkey1+n)] m+=1 else: break n+=1 miwen=miwen.upper() return miwen elif mode=='decrypt': n=0 key1=int(key) key2=len(miwen)/key1 while n<key2: m=0 while m<key1: if (mkey2+n)<len(miwen): new_mingwen=new_mingwen+miwen[int(mkey2+n)] m+=1 else: break n+=1 return new_mingwen
def jiami1(): mingwen=aaa.get() key=bbb.get() miwen=zljm(mingwen,key,'encrypt') ccc.delete(0,tk.END) ccc.insert(0,miwen)
def jiemi1(): miwen=ccc.get() key=bbb.get() new_mingwen=zljm(miwen,key,'decrypt',miwen) aaa.delete(0,tk.END) aaa.insert(0,new_mingwen)
root.mainloop()
原文地址: https://www.cveoy.top/t/topic/oADP 著作权归作者所有。请勿转载和采集!