Python Tkinter 数据安全加密解密工具 - 仿射密码、栅栏密码
import\u0020tkinter\u0020as\u0020tk\nfrom\u0020tkinter\u0020import\u0020*\n#设置窗口及布局\nroot\u003dtk.Tk()\nroot.title("数据安全")#给窗口命名\nroot.geometry('3000x2000')#设置窗口的大小\nlb1\u003dLabel(root,\u0020text='加密解密')#root是主体,text是内容\nlb1.place(relx\u003d0.1,\u0020rely\u003d0.1,\u0020relwidth\u003d0.8,\u0020relheight\u003d0.1)#设置位置\naaa\u003dEntry(root)\naaa.place(relx\u003d0.3,\u0020rely\u003d0.2,\u0020relwidth\u003d0.8,\u0020relheight\u003d0.1)\nbbb\u003dEntry(root)\nbbb.place(relx\u003d0.3,\u0020rely\u003d0.3,\u0020relwidth\u003d0.8,\u0020relheight\u003d0.1)\nccc\u003dEntry(root)\nccc.place(relx\u003d0.3,\u0020rely\u003d0.4,\u0020relwidth\u003d0.7,\u0020relheight\u003d0.1)\nbtn1\u003dButton(root,\u0020text='仿射密码',\u0020command\u003dlambda:fsjm())\nbtn1.place(relx\u003d0,\u0020rely\u003d0.2,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn2\u003dButton(root,\u0020text='栅栏密码',\u0020command\u003dlambda:zljm())\nbtn2.place(relx\u003d0,\u0020rely\u003d0.3,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn3\u003dButton(root,\u0020text='DES算法')\nbtn3.place(relx\u003d0,\u0020rely\u003d0.4,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn4\u003dButton(root,\u0020text='加密',command\u003dlambda:jiami())\nbtn4.place(relx\u003d0.1,\u0020rely\u003d0.2,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn5\u003dButton(root,\u0020text='解密',command\u003dlambda:jiemi())\nbtn5.place(relx\u003d0.2,\u0020rely\u003d0.2,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn6\u003dButton(root,\u0020text='加密',command\u003dlambda:jiami1())\nbtn6.place(relx\u003d0.1,\u0020rely\u003d0.3,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn7\u003dButton(root,\u0020text='解密',command\u003dlambda:jiemi1())\nbtn7.place(relx\u003d0.2,\u0020rely\u003d0.3,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn8\u003dButton(root,\u0020text='加密')\nbtn8.place(relx\u003d0.1,\u0020rely\u003d0.4,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn9\u003dButton(root,\u0020text='解密')\nbtn9.place(relx\u003d0.2,\u0020rely\u003d0.4,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.1)\nbtn10\u003dButton(root,\u0020text='退出',\u0020command\u003droot.destroy)\nbtn10.place(relx\u003d0.9,\u0020rely\u003d0.2,\u0020relwidth\u003d0.1,\u0020relheight\u003d0.3)\ndef\u0020fsjm(text,key,mode):\n\u0020\u0020for\u0020i\u0020in\u0020key:\n\u0020\u0020\u0020\u0020a\u003dint(key[0])\n\u0020\u0020\u0020\u0020b\u003dint(key[1])\n\u0020\u0020if\u0020mode=='encrypt':\n\u0020\u0020\u0020\u0020return\u0020''.join([chr(((a*(ord(t)-65)+b)%26)+65)\u0020if\u0020t.isalpha()\u0020else\u0020t\u0020for\u0020t\u0020in\u0020text.upper()])\n\u0020\u0020elif\u0020mode=='decrypt':\n\u0020\u0020\u0020\u0020a_inv\u003dpow(a,\u0020-1,\u002026)\n\u0020\u0020\u0020\u0020return\u0020''.join([chr(((a_inv*(ord(t)-65-b))%26)+65)\u0020if\u0020t.isalpha()\u0020else\u0020t\u0020for\u0020t\u0020in\u0020text.upper()])\ndef\u0020jiami():\n\u0020\u0020mingwen\u003daaa.get()\n\u0020\u0020key\u003dbbb.get().split(',')\n\u0020\u0020miwen\u003dfsjm(mingwen,key,'encrypt')\n\u0020\u0020ccc.delete(0,tk.END)\n\u0020\u0020ccc.insert(0,miwen)\ndef\u0020jiemi():\n\u0020\u0020miwen\u003dccc.get()\n\u0020\u0020key\u003dbbb.get().split(',')\n\u0020\u0020new_mingwen\u003dfsjm(miwen,key,'decrypt')\n\u0020\u0020aaa.delete(0,tk.END)\n\u0020\u0020aaa.insert(0,new_mingwen)\ndef\u0020zljm(text,key,mode):\n\u0020\u0020key1\u003dint(key)\n\u0020\u0020if\u0020mode=='encrypt':\n\u0020\u0020\u0020\u0020miwen\u003d''\n\u0020\u0020\u0020\u0020n\u003d0\n\u0020\u0020\u0020\u0020while\u0020n<key1:\n\u0020\u0020\u0020\u0020\u0020\u0020m\u003d0\n\u0020\u0020\u0020\u0020\u0020\u0020while\u0020m<len(text)/key1:\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020if\u0020(mkey1+n)<len(text):\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020miwen\u003dmiwen+text[int(mkey1+n)]\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020m+=1\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020else:\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020break\n\u0020\u0020\u0020\u0020\u0020\u0020n+=1\n\u0020\u0020\u0020\u0020miwen\u003dmiwen.upper()\n\u0020\u0020\u0020\u0020return\u0020miwen\n\u0020\u0020elif\u0020mode=='decrypt':\n\u0020\u0020\u0020\u0020n\u003d0\n\u0020\u0020\u0020\u0020miwen\u003dtext\n\u0020\u0020\u0020\u0020new_mingwen\u003d''\n\u0020\u0020\u0020\u0020key1\u003dint(key)\n\u0020\u0020\u0020\u0020key2\u003dlen(miwen)/key1\n\u0020\u0020\u0020\u0020while\u0020n<key2:\n\u0020\u0020\u0020\u0020\u0020\u0020m\u003d0\n\u0020\u0020\u0020\u0020\u0020\u0020while\u0020m<key1:\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020if\u0020(mkey2+n)<len(miwen):\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020new_mingwen\u003dnew_mingwen+miwen[int(mkey2+n)]\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020m+=1\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020else:\n\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020break\n\u0020\u0020\u0020\u0020\u0020\u0020n+=1\n\u0020\u0020\u0020\u0020return\u0020new_mingwen\ndef\u0020jiami1():\n\u0020\u0020mingwen\u003daaa.get()\n\u0020\u0020key\u003dbbb.get()\n\u0020\u0020miwen\u003dzljm(mingwen,key,'encrypt')\n\u0020\u0020ccc.delete(0,tk.END)\n\u0020\u0020ccc.insert(0,miwen)\ndef\u0020jiemi1():\n\u0020\u0020miwen\u003dccc.get()\n\u0020\u0020key\u003dbbb.get()\n\u0020\u0020new_mingwen\u003dzljm(miwen,key,'decrypt')\n\u0020\u0020aaa.delete(0,tk.END)\n\u0020\u0020aaa.insert(0,new_mingwen)\nroot.mainloop()
原文地址: https://www.cveoy.top/t/topic/oADw 著作权归作者所有。请勿转载和采集!