详解python实现可视化的MD5、sha256哈希加密小工具
作者:Gg_ning 发布时间:2021-05-31 15:02:34
标签:python,MD5,sha256,哈希加密
本文主要介绍了详解python实现可视化的MD5、sha256哈希加密小工具,分享给大家,具体如下:
效果图:
刚启动的状态
输入文本、触发加密按钮后支持复制
超过十条不全量显示
代码
import hashlib
import 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)#生成label
label2=tk.Label(windowss,text="MD5:").grid(row=3, column=0)#生成结果固定label
label3=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) # 生成结果 md5
T2 = tk.Label(windowss, width=70,height=10, bd=0,textvariable=judge_text2).grid(row=4, column=1) # 生成结果 sha256
windowss.mainloop()#生成前端窗口
来源:https://blog.csdn.net/Gg_ning/article/details/108537289


猜你喜欢
- django-mdeditorGithub地址:https://github.com/pylixm/django-mdeditor 欢迎试用
- 目录简述:实战案例:简述:关于敏感词过滤可以看成是一种文本反垃圾算法,例如 题目:敏感词文本文件 filtered_words.t
- 一、撤销修改(git add/rm 之前)git checkout -- * //是撤销从上次提交之后所做的所有修改git c
- 一、简介我们知道在购买股票的时候,可以使用历史数据来对当前的股票的走势进行预测,这就需要对股票的数据进行获取并且进行一定的分析,当然了,人们
- 最简单的php语句把数据库*.sql文件导入数据库 $sql=file_get_contents("text.sql")
- 如IE6,在他上面还不那么富饶,给程序调试带来的很大的痛苦啊,所以日志即时输出是一个不错的选择,可以知道程序覆盖到了哪里。即是在先进的浏览器
- __init__()方法意义重大的原因有两个。第一个原因是在对象生命周期中初始化是最重要的一步;每个对象必须正确初始化后才能正常工作。第二个
- 我就废话不多说了,大家还是直接看代码吧!#先定义两个矩阵X=np.array([[1,2104,5,1,45],[1,1416,3,2,40
- 回复图片、音频、视频消息都是需要media_id的,这个是需要将多媒体文件上传到微信服务器才有的。将多媒体文件上传到微信服务器,以及从微信服
- 使用命令行登录MySQL报错1045 Access denied for user ‘root’@&
- 前言之前学习过node.js接触过express框架,最近为了编写一个mock server正好用到了express。下面正好就跟大家介绍一
- 简介Pycharm安装以后必须激活后,才能正常的使用。否则就不能使用。【激活码激活】修改hosts文件添加下面一行到hosts文件,目的是屏
- 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用MySQL数
- Python是一门高级编程语言,而且Python语言适合零基础人员学习,也是初学者的首选。如何学习好Python:1. 要有决心做任何事情,
- 日志Yii提供了一个高度自定义化和高扩展性的日志框架。根据使用场景的不同,你可以很容易的对各种消息就行记录、过滤、合并,比如说文本文件,数据
- display text in large ASCII art fonts 显示大ASCII艺术字体这种东西在源码声明或者软件初始化控制台打
- 先看看关于call()的官方解释,“调用一个对象的一个方法,以另一个对象替换当前对象。”,看了这样的解释,或许让你更摸不着头脑了。看例子:v
- 一、 通过runtime包进行多核设置1.NumCPU()获取当前系统的cpu核数2.GOMAXPROCS设置当前程序运行时占用的cpu核数
- 我就废话不多说了,大家还是直接看代码吧try: s = socket.socket() s.bind(('127.0.0.1'
- 写在前面这篇文章的诞生要感谢MIT 6.284课程。在其中一节课中,谈到了多线程的协同的一些问题,其中就涉及到了channel这个概念,并由