猫史档案馆


【Python作品分享】加密与解密

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


【作品展示】

center_image

 

【作品介绍】

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


回复

上一页1 页 / 共 1下一页
寂梦晨风寂梦晨风

我才知道ASCII竟然有那么多位()

点赞0


评论


坚强的象牙螺0A9m坚强的象牙螺0A9m

Traceback (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


评论