Python Tkinter 数据安全加密解密工具 - 仿射密码、栅栏密码、DES算法
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): key1 = int(key) if mode == 'encrypt': miwen = '' n = 0 while n < key1: m = 0 while m < len(text) / key1: if (m * key1 + n) < len(text): miwen = miwen + text[int(m * key1 + n)] m += 1 else: break n += 1 miwen = miwen.upper() return miwen elif mode == 'decrypt': miwen = text.lower().replace(' ', '') new_mingwen = '' n = 0 key1 = int(key) key2 = len(miwen) // key1 while n < key2: m = 0 while m < key1: if (m * key2 + n) < len(miwen): new_mingwen = new_mingwen + miwen[int(m * key2 + 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') aaa.delete(0, tk.END) aaa.insert(0, new_mingwen)
root.mainloop()
原文地址: https://www.cveoy.top/t/topic/oADD 著作权归作者所有。请勿转载和采集!