详解python实现可视化的MD5、sha256哈希加密小工具

所属分类: python / 脚本专栏 阅读数: 220
收藏 0 赞 0 分享

本文主要介绍了详解python实现可视化的MD5、sha256哈希加密小工具,分享给大家,具体如下:

效果图:

刚启动的状态

输入文本、触发加密按钮后支持复制

超过十条不全量显示

代码

import hashlibimport tkinter as tk#窗口控制windowss=tk.Tk()windowss.title('Python_md5')#窗口title,并非第一行windowss.geometry('820x550')windowss.resizable(width=True, height=True)#宽度可变,高度可变#label组件-文本标签label1=tk.Label(windowss,text="请输入文本").grid(row=0, column=0)#生成labellabel2=tk.Label(windowss,text="MD5:").grid(row=3, column=0)#生成结果固定labellabel3=tk.Label(windowss,text="SHA256:").grid(row=4, column=0)#生成结果固定label#entry组件-文本输入框E12=tk.Text(windowss,width=80,bd=2.5,height=10,relief="sunken")E12.grid(row=0,column=1)#输入正则表达式入口#进入解析模式judge_text1 = tk.StringVar()judge_text1.set("暂未输入")judge_text2 = tk.StringVar()judge_text2.set("")def copy(text2):  windowss.clipboard_clear() # 清除剪贴板内容  windowss.clipboard_append(text2)def judge():  text1 = E12.get('0.0','end')#'0.0','end'全量读取  to_one_line = ' '.join(text1.split())#转化为列表1  test_list = to_one_line.split(' ')#转化为列表2  m1=""  m2=""  for texts in test_list:    matcher_md5_new= hashlib.md5(texts.encode('utf8'))#md5转化    matcher_md5 = str(matcher_md5_new.hexdigest())#获取md5    m1=m1+"\n"+matcher_md5#分行    matcher_sha256_new = hashlib.sha3_256(texts.encode('utf8'))#转化为sha256    matcher_sha256 = str(matcher_sha256_new.hexdigest())    m2 = m2 + "\n" + matcher_sha256  if len(test_list)>10:#大于十条数据时,不完全显示    T3 = tk.Label(windowss,text="").grid(row=5, column=1)    T4 = tk.Label(windowss,text="tips:最大显示10条解析文本,可全量复制!").grid(row=6, column=1)  judge_text1.set(m1)  judge_text2.set(m2)  #生成复制按钮,用了lambda可以排除按钮之间干扰  B2 = tk.Button(windowss, text="复制md5", width=10, height=2, command=lambda:copy(str(m1))).grid(row=1, column=0)  B3 = tk.Button(windowss, text="复制sha256", width=10, height=2, command=lambda:copy(str(m2))).grid(row=1, column=2)#设置加密按钮,command表示触发条件B1=tk.Button(windowss,text="哈希加密",width=10,height=2,command=judge).grid(row=1,column=1)#输出结果T1 = tk.Label(windowss, width=70, height=10,bd=0,textvariable=judge_text1).grid(row=3, column=1) # 生成结果 md5T2 = tk.Label(windowss, width=70,height=10, bd=0,textvariable=judge_text2).grid(row=4, column=1) # 生成结果 sha256windowss.mainloop()#生成前端窗口
更多精彩内容其他人还在看

Python处理json字符串转化为字典的简单实现

今天一个朋友给个需求: 来来 {'isOK': 1, 'isRunning': None, 'isError': None}怎么转换成字典好,一看就是json转化很简单,开始:import jsona = "{'isOK': 1, 'isRunning': None, 'isEr... 查看详情
收藏 0 赞 0 分享

简单掌握Python的Collections模块中counter结构的用法

counter 是一种特殊的字典,主要方便用来计数,key 是要计数的 item,value 保存的是个数。from collections import Counter>>> c = Counter('hello,world')Counter({'l': 3,... 查看详情
收藏 0 赞 0 分享

详解Python的collections模块中的deque双端队列结构

deque 是 double-ended queue的缩写,类似于 list,不过提供了在两端插入和删除的操作。 appendleft 在列表左侧插入 popleft 弹出列表左侧的值 extendleft 在左侧扩展例如:queue = deque()# append v... 查看详情
收藏 0 赞 0 分享

Python的collections模块中namedtuple结构使用示例

namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 index 访问,没有明确的称呼,而 namedtuple 就是事先把这些 item 命... 查看详情
收藏 0 赞 0 分享

Python的collections模块中的OrderedDict有序字典

如同这个数据结构的名称所说的那样,它记录了每个键值对添加的顺序。d = OrderedDict()d['a'] = 1d['b'] = 10d['c'] = 8for letter in d: print letter输出:    abc如果初始化... 查看详情
收藏 0 赞 0 分享

简介Python的collections模块中defaultdict类型的用法

defaultdict 主要用来需要对 value 做初始化的情形。对于字典来说,key 必须是 hashable,immutable,unique 的数据,而 value 可以是任意的数据类型。如果 value 是 list,dict 等数据类型,在使用之前必须初始化为空,有些... 查看详情
收藏 0 赞 0 分享

Python中的os.path路径模块中的操作方法总结

解析路径路径解析依赖与os中定义的一些变量: os.sep-路径各部分之间的分隔符。 os.extsep-文件名与文件扩展名之间的分隔符。 os.pardir-路径中表示目录树上一级的部分。 os.curdir-路径中当前目录的部分。split()函数将路径分解为两个单独... 查看详情
收藏 0 赞 0 分享

Python中使用platform模块获取系统信息的用法教程

操作系统相关 system() : 操作系统类型(见例) version(): 操作系统版本 release(): 操作系统发布号, 例如win 7返回7, 还有如NT, 2.2.0之类. platform(aliased=0, terse=0): 操作系统信息字符串,扥... 查看详情
收藏 0 赞 0 分享

Python中的FTP通信模块ftplib的用法整理

Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件.FTP的工作流程及基本操作可参考协议RFC959.ftp登陆连接from ftplib import FTP #加载ftp模块ftp=FTP() #设置变量ft... 查看详情
收藏 0 赞 0 分享

Python设计足球联赛赛程表程序的思路与简单实现示例

每年意甲德甲英超西甲各大联赛的赛程表都是球迷们的必看之物,想起之前写过的一段生成赛程表的代码,用Python来写这类东西太舒服了。这个算法叫做蛇环算法。即,把所有球队排成一个环形(2列),左边对阵右边,第一支队伍不动,其他队伍顺时针循环,这样就肯定不重复了。为了方便说明,假设有8... 查看详情
收藏 0 赞 0 分享
查看更多