目录

加密函数

解密函数

主界面

加密界面

复制按钮:

解密界面

执行

完整代码:

效果


每周更新一下,(可能还不是那么完善)希望支持一下。

定义一个包括加密和解密的类

import wx#导入wxpythonclass encry_commut:#定义encry_commut类

加密函数

用随机数加密后返回信息和密钥

# def __init__(self):alphabet = [chr(i) for i in range(97, 123)]alphabet.append(' ')#创建字母表def enchipher(self, information):#infomation,要加密的信息import random#导入随机类encrylist = []cipher1 = []encry = []#infomation变成的列表for i in range(len(information)):encry.append(information[i])#将字符串替换为列表if 1 == 1:#凑数# space=[]encrylist.append('b')#迷惑性行为encry_trans = []#将转换后的encry加入# location=-1for i in range(len(encry)):ord1 = ord(encry[i])#将每个字变成ord编码if len(str(ord1)) < 5:ord1 = '0' * (5 - len(str(ord1))) + str(ord1)#统一格式encry_trans.append(ord1)order = ''.join('%s' % id for id in encry_trans)#字符串化后的encry_transfor i in range(len(order)):random1 = random.randint(0, 9)# order = alphabet.index(encry[i])order1 = int(order[i]) + random1#每个字符随机加密cipher1.append(f'{random1}')#加入密钥if order1 < 27:encrylist.append(encry_commut.alphabet[order1])#加入转换为字母的信息else:order1 -= 26#如超过,重新开始encrylist.append(encry_commut.alphabet[order1])chipherstr=''.join('%s' % id for id in cipher1)encryliststr=''.join('%s' % id for id in encrylist)return [encryliststr,chipherstr]#返回值# return ''.join('%s' % id for id in cipher1)

解密函数

输入信息和密钥后返回原本的信息

    def decrypt(self,decrypt_information,cipher):text=[]#解密if decrypt_information[0]=='b':section=[]in1=decrypt_information[1:len(decrypt_information)+1]chipher_list=[]for i in range(len(in1)):chipher_list1=encry_commut.alphabet.index(in1[i])-int(cipher[i])#转换为数字if chipher_list1<0:chipher_list1+=27chipher_list.append(chipher_list1)for i in range(0,len(chipher_list),5):section1=(chipher_list[i:i+5])section.append(''.join('%s' % id for id in section1))#五个分为一组,再转换为中文for i in range(len(section)):text.append(chr(int(section[i])))textnumber = ''.join(text)# textnumber.replace(' ', '')return textnumber

定义一个界面类

class MyApp(wx.App):

主界面

可选择是加密还是解密。

有两个按钮,分别是加密和解密。

    def OnInit(self):frame=wx.Frame(parent=None,title='my first interface')panel = wx.Panel(frame,-1)label1=wx.StaticText(panel,-1,'需要加密还是解密?',pos=(30,10))#标签button1=wx.Button(panel,-1,'加密',pos=(80,110))button2=wx.Button(panel,-1,'解密',pos=(180,110))self.button1=button1#两个按钮self.button2=button2self.Bind(wx.EVT_BUTTON,#绑定事件self.ench,self.button1)self.Bind(wx.EVT_BUTTON,self.decr,self.button2)frame.Show()return True

加密界面

把解密函数包装一下,并且设置一个完成按钮。

    def ench(self,event):#按钮绑定的事件ench1 = wx.Frame(None, title='加密')lable1=wx.StaticText(ench1,-1,'需要加密的信息',pos=(10,10))self.text1=wx.TextCtrl(ench1,pos=(130,10),size=(180,30),style=wx.TE_MULTILINE)#需要加密的信息填入self.button3=wx.Button(ench1,-1,'确定',pos=(110,170))self.Bind(wx.EVT_BUTTON,self.ture1,self.button3)ench1.Show()self.ench1=ench1

按下完成后显示+设置两个复制按钮

    def ench(self,event):#按钮绑定的事件ench1 = wx.Frame(None, title='加密')lable1=wx.StaticText(ench1,-1,'需要加密的信息',pos=(10,10))self.text1=wx.TextCtrl(ench1,pos=(130,10),size=(180,30),style=wx.TE_MULTILINE)#需要加密的信息填入self.button3=wx.Button(ench1,-1,'确定',pos=(110,170))self.Bind(wx.EVT_BUTTON,self.ture1,self.button3)ench1.Show()self.ench1=ench1

复制按钮:

    def login(self, event):#复制按钮绑定的事件text =self.list1[0]data_object = wx.TextDataObject(text)wx.TheClipboard.SetData(data_object)#放入剪贴板#复制def login2(self, event):#复制按钮绑定的事件text1 =self.list1[1]data_object1 = wx.TextDataObject(text1)wx.TheClipboard.SetData(data_object1)#复制

解密界面

只是把解密函数包装了一下

    def decr(self,event):#按钮绑定的事件decr1 = wx.Frame(None, title='解密')lable2=wx.StaticText(decr1,-1,'需要解密的信息',pos=(10,10))#用定义好的解密函数self.text2=wx.TextCtrl(decr1,pos=(130,10),size=(180,30),style=wx.TE_MULTILINE)#需要解密的信息填入lable3=wx.StaticText(decr1,-1,'密钥',pos=(10,60))#标签self.text3=wx.TextCtrl(decr1,pos=(130,60),size=(180,30),style=wx.TE_MULTILINE)self.button4=wx.Button(decr1,-1,'确定',pos=(110,110))self.Bind(wx.EVT_BUTTON,self.ture2,self.button4)decr1.Show()self.decr1=decr1def ture2(self,event):encry2=encry_commut()secret2=self.text2.GetValue()#得到文本框里的内容secret3 = self.text3.GetValue()str1=encry2.decrypt(secret2,secret3)lable5=wx.StaticText(self.decr1,-1,f'{str1}',pos=(10,150),style=wx.ALIGN_CENTRE_HORIZONTAL)

执行

app = MyApp()
app.MainLoop()

完整代码:

import wx#导入wxpythonclass encry_commut:#定义encry_commut类# def __init__(self):alphabet = [chr(i) for i in range(97, 123)]alphabet.append(' ')#创建字母表def enchipher(self, information):#infomation,要加密的信息import random#导入随机类encrylist = []cipher1 = []encry = []#infomation变成的列表for i in range(len(information)):encry.append(information[i])#将字符串替换为列表if 1 == 1:#凑数# space=[]encrylist.append('b')#迷惑性行为encry_trans = []#将转换后的encry加入# location=-1for i in range(len(encry)):ord1 = ord(encry[i])#将每个字变成ord编码if len(str(ord1)) < 5:ord1 = '0' * (5 - len(str(ord1))) + str(ord1)#统一格式encry_trans.append(ord1)order = ''.join('%s' % id for id in encry_trans)#字符串化后的encry_transfor i in range(len(order)):random1 = random.randint(0, 9)# order = alphabet.index(encry[i])order1 = int(order[i]) + random1#每个字符随机加密cipher1.append(f'{random1}')#加入密钥if order1 < 27:encrylist.append(encry_commut.alphabet[order1])#加入转换为字母的信息else:order1 -= 26#如超过,重新开始encrylist.append(encry_commut.alphabet[order1])chipherstr=''.join('%s' % id for id in cipher1)encryliststr=''.join('%s' % id for id in encrylist)return [encryliststr,chipherstr]#返回值# return ''.join('%s' % id for id in cipher1)def decrypt(self,decrypt_information,cipher):text=[]#解密if decrypt_information[0]=='b':section=[]in1=decrypt_information[1:len(decrypt_information)+1]chipher_list=[]for i in range(len(in1)):chipher_list1=encry_commut.alphabet.index(in1[i])-int(cipher[i])#转换为数字if chipher_list1<0:chipher_list1+=27chipher_list.append(chipher_list1)for i in range(0,len(chipher_list),5):section1=(chipher_list[i:i+5])section.append(''.join('%s' % id for id in section1))#五个分为一组,再转换为中文for i in range(len(section)):text.append(chr(int(section[i])))textnumber = ''.join(text)# textnumber.replace(' ', '')return textnumber
class MyApp(wx.App):def OnInit(self):frame=wx.Frame(parent=None,title='my first interface')panel = wx.Panel(frame,-1)label1=wx.StaticText(panel,-1,'需要加密还是解密?',pos=(30,10))#标签button1=wx.Button(panel,-1,'加密',pos=(80,110))button2=wx.Button(panel,-1,'解密',pos=(180,110))self.button1=button1#两个按钮self.button2=button2self.Bind(wx.EVT_BUTTON,#绑定事件self.ench,self.button1)self.Bind(wx.EVT_BUTTON,self.decr,self.button2)frame.Show()return Truedef ench(self,event):#按钮绑定的事件ench1 = wx.Frame(None, title='加密')lable1=wx.StaticText(ench1,-1,'需要加密的信息',pos=(10,10))self.text1=wx.TextCtrl(ench1,pos=(130,10),size=(180,30),style=wx.TE_MULTILINE)#需要加密的信息填入self.button3=wx.Button(ench1,-1,'确定',pos=(110,170))self.Bind(wx.EVT_BUTTON,self.ture1,self.button3)ench1.Show()self.ench1=ench1def ture1(self,event):#按钮绑定的事件encry1=encry_commut()secret=self.text1.GetValue()self.list1=encry1.enchipher(secret)lable3=wx.StaticText(self.ench1,-1,f'{self.list1[0]}',pos=(10,60))lable4=wx.StaticText(self.ench1,-1,f'{self.list1[1]}',pos=(10,80))button1 = wx.Button(self.ench1, -1, '复制信息', pos=(10,100))#复制按钮button2 = wx.Button(self.ench1, -1, '复制密钥', pos=(100,100))self.button1 = button1self.button2=button2self.Bind(wx.EVT_BUTTON,self.login,self.button1)#绑定事件self.Bind(wx.EVT_BUTTON, self.login2, self.button2)#绑定事件def login(self, event):#复制按钮绑定的事件text =self.list1[0]data_object = wx.TextDataObject(text)wx.TheClipboard.SetData(data_object)#放入剪贴板#复制def login2(self, event):#复制按钮绑定的事件text1 =self.list1[1]data_object1 = wx.TextDataObject(text1)wx.TheClipboard.SetData(data_object1)#复制def decr(self,event):#按钮绑定的事件decr1 = wx.Frame(None, title='解密')lable2=wx.StaticText(decr1,-1,'需要解密的信息',pos=(10,10))#用定义好的解密函数self.text2=wx.TextCtrl(decr1,pos=(130,10),size=(180,30),style=wx.TE_MULTILINE)#需要解密的信息填入lable3=wx.StaticText(decr1,-1,'密钥',pos=(10,60))#标签self.text3=wx.TextCtrl(decr1,pos=(130,60),size=(180,30),style=wx.TE_MULTILINE)self.button4=wx.Button(decr1,-1,'确定',pos=(110,110))self.Bind(wx.EVT_BUTTON,self.ture2,self.button4)decr1.Show()self.decr1=decr1def ture2(self,event):encry2=encry_commut()secret2=self.text2.GetValue()secret3 = self.text3.GetValue()str1=encry2.decrypt(secret2,secret3)lable5=wx.StaticText(self.decr1,-1,f'{str1}',pos=(10,150),style=wx.ALIGN_CENTRE_HORIZONTAL)
app = MyApp()
app.MainLoop()

效果

(其实没有什么加密效果,可以把密钥加在信息后会好一些)

wxpython 界面 加密系统相关推荐

  1. C语言实现DES,3DES以及基于3DES的文件加密系统

    C语言实现3DES文件加密系统 DES算法 密钥操作 明文操作 3DES算法 C语言代码实现 代码效果展示 DES算法 DES(数据加密标准)是一种分组密码.明文,密文和密钥的分组长度都是64位. D ...

  2. 企业级程序 苏林加密系统内测发布 支持多种加密

    简介: 苏林加密系统是一款专门为php加密的程序,支持sg11加密.xend加密.goto加密.Leave加密.enphp加密.NoName加密,可以发展用户,可以设置某加密价格,支持api接口加密, ...

  3. PHP在线加密系统-陌屿云PLUS开源版V8.01

    介绍: 陌屿云PLUS版V8.01开源版本 PHP在线加密系统源码 更新日志: v8.0 1.新模板新功能 2.添加新弹窗功能 3.新上传文件判断 4.代理注册发验证码 5.新公告功能 6.全局美化模 ...

  4. 【密码学】Java课设-文件加密系统(适用于任何文件)

    Java实现文件加密解密 前言 一.密码学入门 1.对称加密 2.非对称加密 二.程序代码 1.welcome类(欢迎界面) 2.Log类(登录界面) 3.Register类(注册界面) 4.Inde ...

  5. 操作系统-添加文件加密系统

    一.实验目的和要求 文件系统是操作系统中最直观的部分,因为用户可以通过文件直接地和操作系统交互, 操作系统也必须为用户提供数据计算.数据存储的功能.本实验通过添加一个文件系统,进 一步理解 Linux ...

  6. 嵌入式linux程序加密,基于嵌入式操作系统uClinux实现网络安全加密系统的设计

    金融安全支付系统是专门针对金融领域应用需求,实现小型化.便捷.安全的自助交易的软硬件平台,能够为多种应用提供高速安全服务,解决目前交易信息在传输过程中存在的各种安全问题,实现金融信息的安全交易.基于该 ...

  7. 教你如何搭建编译服务器安装加密系统

    教你如何搭建编译服务器安装加密系统 一.怎么装Ubuntu 16.04? 可以参考博客:U盘安装 Ubuntu 16.04 二.ubuntu降低内核版本 降低内核版本目的是为了安装加密系统软件 可以参 ...

  8. 中安威士隆重发布第二代数据库加密系统

    十年磨一剑,在2017年即将来临的重要时刻,中安威士隆重发布第二代数据库加密系统!十年前,中安威士就在国内率先发布了数据库加密系统,可谓国内较早的数据库加密产品.尔后,经过十年的研发攻关和经验积累,中 ...

  9. 设计文件加密服务器,如何设计数据库文件加密系统

    据有关资料报道,计算机犯罪80%来自系统内部.实现数据库文件加密以后,各用户(或用户组)的数据用自己的密钥加密,其他用户无法对其进行解密,保护了用户的秘密.另外,数据库的备份内容也可以是密文,能够减少 ...

最新文章

  1. Android使用磁盘缓存DiskLruCache
  2. C#让两个长度相同的数组一一对应
  3. 《Linux高性能服务器编程》——导读
  4. 52. N-Queens II
  5. Java内存缓存-通过Google Guava创建缓存
  6. struts2:多业务方法的处理(动态调用,DMI)
  7. [转载]sql(hive)中变量的使用
  8. /etc/sudoers中的含义
  9. 遍历窗体中所有控件的信息
  10. 对接闪送_中国快递业加速出海,圆通上线“全球闪送”,与顺丰、申通抢市场...
  11. Hibernate操作数据库步骤(包括语法)
  12. sql azure 语法_将SQL工作负载迁移到Microsoft Azure:规划迁移
  13. 动态规划练习合集(c++)
  14. Python数据的精度
  15. 可线性渐变的环形进度条的实现探究
  16. 中e管家理财小方法让闲钱变成活钱
  17. 在线生成安卓APP图标
  18. vue-admin websocket接收消息推送+语音提示(详细代码)
  19. getline()函数详解
  20. 老版本Ultraedit 19.x 下载及安装

热门文章

  1. uniapp 图片上传与展示
  2. 关于 用无线路由器组成的局域网内共享文件_习惯累积沉淀_新浪博客
  3. iOS工程师Mac上的必备软件
  4. 手写数字识别问题(5)——完结
  5. Kibana 的用途是什么?
  6. 搭建spark源码运行环境报错及解决办法
  7. 2021年南非经济发展研究报告
  8. 南非SABS EMC CoC简介
  9. 7000 位程序员揭秘 2019 软件开发现状
  10. 2019清华计算机考研,2019清华计算机考研总分是多少