Python使用Tkiner进行MD5加密

zz/2024/6/13 21:37:59

MD5加密

from tkinter import *
import hashlib
import timeLOG_LINE_NUM = 0    # 日志信息内容class mu_gui():def __init__(self, init_window_name):self.init_window_name = init_window_name# 窗口布局的方法def set_init_window(self):self.init_window_name.title='MD5加密工具'   # 窗口名# 900,600为窗口大小,+10+10为窗口弹出是的默认显示位置self.init_window_name.geometry('1000x618+20+20')self.init_window_name['bg'] = 'yellow'    # 设置窗口的背景色# self.init_window_name.attributes("-alpha", 0.5) # 背景虚化-透明度# 布局self.init_data_label = Label(self.init_window_name, text='待处理数据')# grid() 网格:布局定位self.init_data_label.grid(row=0, column=0)self.result_data_label = Label(self.init_window_name, text='输出结果')self.result_data_label.grid(row=0, column=12)self.log_label = Label(self.init_window_name, text='日志')self.log_label.grid(row=12, column=0)# 文本框self.init_data_text = Text(self.init_window_name, width=67, height=35)   # 原始数据输入框self.init_data_text.grid(row=1, column=0, rowspan=10, columnspan=10)self.result_data_text = Text(self.init_window_name, width=70, height=49)    # 加密后的数据self.result_data_text.grid(row=1, column=12, rowspan=15, columnspan=10)self.log_text = Text(self.init_window_name, width=67, height=9) # 日志框self.log_text.grid(row=13, column=0, columnspan=11)# 按钮self.mod5_button = Button(self.init_window_name, text='转换成MD5', bg='violet',width=10, command=self.str_trains_to_md5)self.mod5_button.grid(row=1, column=11)def str_trains_to_md5(self):src = self.init_data_text.get(1.0, END).strip().replace('\n', '').encode()if src:try:myMd5 = hashlib.md5()myMd5.update(src)myMd5_Digest = myMd5.hexdigest()# 清空self.result_data_text.delete(1.0, END)# 插入self.result_data_text.insert(1.0, myMd5_Digest)self.print_log_to_text("INFO: 字符串加密成功")except:self.result_data_text.delete(1.0, END)self.result_data_text.insert(1.0, '字符串加密失败-')else:self.print_log_to_text("ERROR: 字符串加密失败")# 日志打印:获取当前日期时间+固定字符串内容def get_current_time(self): # 获取当前时间current_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))return current_timedef print_log_to_text(self, logmsg):    # 打印日志global LOG_LINE_NUMcurrent_time = self.get_current_time()logmsg_in = str(current_time)+" "+str(logmsg)+"\n"if LOG_LINE_NUM <= 7:self.log_text.insert(END, logmsg_in)LOG_LINE_NUM += 1else:self.log_text.delete((1.0, 2.0))self.log_text.insert(END, logmsg_in)

http://www.ngui.cc/zz/2732110.html

相关文章

Python每日笔记13(线程)

本次内容&#xff1a;线程 >> Python每日笔记—目录 << 线程 多线程的使用 Thread() group:线程组&#xff0c;目前只能使用None target:执行的目标任务名 *args:以元组的方式给执行任务进行传参 **kwargs:以字典的方式进行传参 name:线程名称&#xff0c;一般…

爬虫网络库(5.requests网络库)

这里写目录标题 Request网络库介绍5.1 request使用案例15.2 get方法5.3 设置请求头headers5.4 get_binary方法5.5 使用post方法发送post请求5.6 response请求响应结果5.7 uploadfile上传文件5.8 设置Cookie5.9 使用Session对象5.10 SSL签名证书5.11 proxy设置HTTP/HTTPS的代理5…

vue中虚拟DOM到真实DOM大概转化过程

let vnode {tagname: div,attrs: {id: 1,class: active},content: hello } // 虚拟DOM到真实DOM的大概转换过程 let div document.createElement(vnode.tagname) for (let key in vnode.attrs) {div.setAttribute(key, vnode.attrs[key]) } div.innerHMTL vnode.content

SQLAlchemy连接MySQL数据库的方法

代码如下&#xff1a; 在create_engine中输入的是一个连接字符串。在使用python的SQLAlchemy时&#xff0c;连接字符串的格式如下&#xff1a; 数据库产品名连接工具名&#xff1a;//用户名&#xff1a;密码数据库IP地址&#xff1a;数据库端口号/数据库名称&#xff1f;chars…

springBoot使用druid数据库连接池以及logback,并开启慢sql记录输出到指定的日志文件

该文主要记录下自己使用过程&#xff0c;以后用到可以看看&#xff0c;我的springBoot版本是2.2.1&#xff0c;2以上应该都没问题 1.首先添加好需要的依赖包&#xff1a; <!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-…

重温经典:Windows1.0系统体验和尝试自己编写Windows1.0系统

相关说明 如果你觉得文章含有侵权部分,可以联系CSDN私聊,我会适当修改。 未经允许,不得转载,如需转载,请CSDN私聊。 Windows Windows,意思是窗口,窗户。当然,他也是一个操作系统的名字。 1983年,由比尔盖茨建立的Microsoft,也就是微软公司,开始研制Windows操作系统…

读书笔记_mysql必知必会_27_全球化和本地化

目录 字符集和校对顺序 使用字符集和校对顺序 字符集和校对顺序 数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此&#xff0c;MySQL 需要适应不同的字符集&#xff08;不同的字母和字符&#xff09;&#xff0c;适应不同的排序和检索数据…

Serializable和Externalizable浅析

Java序列化是指把Java对象转换为字节序列的过程&#xff1b;而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。 本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化&#xff0c;并给出部分属性序列化的几种方…

java8新特性_12_Stream练习

public class TestStreamApi04lianxi {List<Employee> emps Arrays.asList(new Employee("张三", 18,9999.99, Status.FREE),new Employee("李四", 38,5555.99, Status.BUSY),new Employee("王五", 50,6666.66, Status.VOCATION),new Emp…

《并发编程的艺术》第一章 并发编程的挑战

1.1 上下文切换 CPU 通 过时间 片分配算法来循 环执 行任 务 &#xff0c;当前任 务执 行一个 时间 片后会切 换 到下一个 任务 。但是&#xff0c;在切 换 前会保存上一个任 务 的状 态 &#xff0c;以便下次切 换 回 这 个任 务时 &#xff0c;可以再加 载这 个任务 的状 态…