用户:随风6ar_查看:0 回复:3 评论:0 创建时间:2022-01-14T18:02:55
【作品展示】

【作品介绍】
1
【作品源代码】
#作者:张明灿
#部分灵感来自网络,感谢!
#https://www.weixueyuan.net/a/792.html
#https://blog.csdn.net/weixin_43881394/article/details/109259112?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword
import tkinter
tk = tkinter.Tk()
tk.minsize(490, 495)
tk.maxsize(490, 495)
tk.title('加密与解密')
#加密
isencry = False # 为了防止点击多次加密出现问题
#加密算法,参数:秘钥,文本
def encryption():
key = inputkey.get()
global isencry
if len(key) > 2 and len(key) < 10 and isencry:
text = inputtext.get(1.0, 'end')
text2 = ''
#将key转化成ascii码列表
newkey = []
for i in key:
newkey.append(ord(i))
ii = 0
for i in text:
if ord(i) != 10:
text2 = text2+chr(ord(i)+newkey[ii]) # 关键部分,加密公式
else:
text2 = text2+chr(10)
ii = ii+1
if ii >= len(newkey):
ii = 0
inputtext.delete(1.0, 'end')
inputtext.insert('insert', text2)
isencry = False
#修改文本触发
def i喵odifytext(*o):
global isencry
isencry = True
tkinter.Label(
tk, text='------------------------------------加 密------------------------------------').place(x=10, y=0)
#设置秘钥
tkinter.Label(tk, text="请输入3-9位的秘钥").place(x=10, y=30)
ik = tkinter.StringVar()
inputkey = tkinter.Entry(tk, textvariable=ik, width=36)
inputkey.place(x=150, y=30)
#输入要加密的文本
tkinter.Label(tk, text="请输入要加密的文本").place(x=10, y=60)
inputtext = tkinter.Text(tk, width=36, height=10)
inputtext.place(x=150, y=60)
inputtext.bind('', i喵odifytext)
#点击加密
tkinter.Button(tk, text='点击加密', width=14,
command=encryption).place(x=10, y=198)
#解密
isdecry = False # 为了防止点击多次解密出现bug
#解密算法,参数:秘钥,文本
def decrypt():
key = inputkey2.get()
global isdecry
if len(key) > 2 and len(key) < 10 and isdecry:
text = inputtext2.get(1.0, 'end')
text2 = ''
#将key转化成ascii码列表
newkey = []
for i in key:
newkey.append(ord(i))
ii = 0
for i in text:
if ord(i) != 10:
text2 = text2+chr(ord(i)-newkey[ii]) # 关键部分,解密公式
else:
text2 = text2+chr(10)
ii = ii+1
if ii >= len(newkey):
ii = 0
inputtext2.delete(1.0, 'end')
inputtext2.insert('insert', text2)
isdecry = False
#修改文本触发
def i喵odify2(*o):
global isdecry
isdecry = True
tkinter.Label(
tk, text='------------------------------------解 密------------------------------------').place(x=10, y=250)
#设置秘钥
tkinter.Label(tk, text="请输入3-9位的秘钥").place(x=10, y=280)
ik2 = tkinter.StringVar()
inputkey2 = tkinter.Entry(tk, textvariable=ik2, width=36)
inputkey2.place(x=150, y=280)
#输入要解密的文本
tkinter.Label(tk, text="请输入要解密的文本").place(x=10, y=310)
inputtext2 = tkinter.Text(tk, width=36, height=10)
inputtext2.place(x=150, y=310)
inputtext2.bind('', i喵odify2)
#点击解密
tkinter.Button(tk, text='点击解密', width=14, command=decrypt).place(x=10, y=448)
tk.mainloop() # 显示窗口
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn
坚强的象牙螺0A9mTraceback (most recent call last):
File "C:\Users\...\Desktop\PythonTemp\2说23尔二分.py", line 58, in <module>
inputtext.bind('', i喵odifytext)
File "C:\Users\...\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1248, in bind
return self._bind(('bind', self._w), sequence, func, a喵)
File "C:\Users\...\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1203, in _bind
self.tk.call(what + (sequence, cmd))
_tkinter.TclError: no events specified in binding
点赞0
评论
超能枫叶有问题,我修好了,被”喵“的地方可能是s b
#作者:张明灿
#部分灵感来自网络,感谢!
#喵喵喵
#喵喵喵
import tkinter
tk = tkinter.Tk()
tk.minsize(490, 495)
tk.maxsize(490, 495)
tk.title('加密与解密')
#加密
isencry = False # 为了防止点击多次加密出现问题
#加密算法,参数:秘钥,文本
def encryption():
key = inputkey.get()
global isencry
if len(key) > 2 and len(key) < 10 and isencry:
text = inputtext.get(1.0, 'end')
text2 = ''
#将key转化成ascii码列表
newkey = []
for i in key:
newkey.append(ord(i))
ii = 0
for i in text:
if ord(i) != 10:
text2 = text2+chr(ord(i)+newkey[ii]) # 关键部分,加密公式
else:
text2 = text2+chr(10)
ii = ii+1
if ii >= len(newkey):
ii = 0
inputtext.delete(1.0, 'end')
inputtext.insert('insert', text2)
isencry = False
#修改文本触发
def i喵odifytext(*o):
global isencry
isencry = True
tkinter.Label(
tk, text='------------------------------------加 密------------------------------------').place(x=10, y=0)
#设置秘钥
tkinter.Label(tk, text="请输入3-9位的秘钥").place(x=10, y=30)
ik = tkinter.StringVar()
inputkey = tkinter.Entry(tk, textvariable=ik, width=36)
inputkey.place(x=150, y=30)
#输入要加密的文本
tkinter.Label(tk, text="请输入要加密的文本").place(x=10, y=60)
inputtext = tkinter.Text(tk, width=36, height=10)
inputtext.place(x=150, y=60)
inputtext.bind('', i喵odifytext())
#点击加密
tkinter.Button(tk, text='点击加密', width=14,
command=encryption).place(x=10, y=198)
#解密
isdecry = False # 为了防止点击多次解密出现bug
#解密算法,参数:秘钥,文本
def decrypt():
key = inputkey2.get()
global isdecry
if len(key) > 2 and len(key) < 10 and isdecry:
text = inputtext2.get(1.0, 'end')
text2 = ''
#将key转化成ascii码列表
newkey = []
for i in key:
newkey.append(ord(i))
ii = 0
for i in text:
if ord(i) != 10:
text2 = text2+chr(ord(i)-newkey[ii]) # 关键部分,解密公式
else:
text2 = text2+chr(10)
ii = ii+1
if ii >= len(newkey):
ii = 0
inputtext2.delete(1.0, 'end')
inputtext2.insert('insert', text2)
isdecry = False
#修改文本触发
def i喵odify2(*o):
global isdecry
isdecry = True
tkinter.Label(
tk, text='------------------------------------解 密------------------------------------').place(x=10, y=250)
#设置秘钥
tkinter.Label(tk, text="请输入3-9位的秘钥").place(x=10, y=280)
ik2 = tkinter.StringVar()
inputkey2 = tkinter.Entry(tk, textvariable=ik2, width=36)
inputkey2.place(x=150, y=280)
#输入要解密的文本
tkinter.Label(tk, text="请输入要解密的文本").place(x=10, y=310)
inputtext2 = tkinter.Text(tk, width=36, height=10)
inputtext2.place(x=150, y=310)
inputtext2.bind('', i喵odify2())
#点击解密
tkinter.Button(tk, text='点击解密', width=14, command=decrypt).place(x=10, y=448)
tk.mainloop() # 显示窗口点赞0
评论