先上图,左边是hashmyfiles专业校验md5码的工具,右图是我用tk写的小工具,可校验md5和sha1值

下图更新了,md5修改功能,为了不破坏源文件,做了复制文件的处理

thinter代码如下

from tkinter import Label,Tk,StringVar,messagebox
from tkinter.filedialog import askopenfilename
from tkinter.ttk import Entry,Button
from md5校验.md5_test import md5_check,change_md5class App(object):def __init__(self):self.w=Tk()self.w.title('md5校验与修改')self.w.geometry('360x400')self.make_res()self.res_config()self.w.mainloop()def make_res(self):self.E_var=StringVar()self.L_file=Label(self.w,fg='red')self.E_file=Entry(self.w,textvariable=self.E_var)self.B_choose=Button(self.w,text='选择')self.L_md5_message=Label(self.w,bg='#C6E2FF')self.L_md5_info=Label(self.w,text='MD5:',fg='#B03060')self.L_sha1_message=Label(self.w,bg='#C6E2FF')self.L_sha1_info=Label(self.w,text='SHA1:',fg='#1874CD')self.B_change=Button(self.w,text='修改MD5')self.L_new_md5_message = Label(self.w, bg='#C6E2FF')self.L_new_md5_info = Label(self.w, text='MD5:', fg='#B03060')self.L_new_sha1_message = Label(self.w, bg='#C6E2FF')self.L_new_sha1_info = Label(self.w, text='SHA1:', fg='#1874CD')self.L_new_message=Label(self.w,bg='#7EC0EE')self.L_new_info=Label(self.w,text='复制:',fg='red')self.res_place()#设置坐标def res_place(self):self.L_file.place(x=50,y=5,width=200,height=30)self.E_file.place(x=50,y=40,width=230,height=30)self.B_choose.place(x=300,y=40,width=50,height=30)self.L_md5_message.place(x=50,y=80,width=300,height=30)self.L_md5_info.place(x=5,y=80,width=32,height=30)self.L_sha1_message.place(x=50,y=120,width=300,height=30)self.L_sha1_info.place(x=5,y=120,width=32,height=30)self.B_change.place(x=50,y=160,width=70,height=30)self.L_new_md5_message.place(x=50,y=230,width=300,height=30)self.L_new_md5_info.place(x=5,y=230,width=32,height=30)self.L_new_sha1_message.place(x=50,y=270,width=300,height=30)self.L_new_sha1_info.place(x=5,y=270,width=32,height=30)self.L_new_message.place(x=50,y=195,width=300,height=30)self.L_new_info.place(x=5,y=195,width=40,height=30)def res_config(self):self.L_file.config(text='请选择文件或者输入文件路径')self.B_choose.config(command=self.select_config)self.B_change.config(command=self.change_file_md5)def select_config(self):#如果路径非空,直接执行校验,路径报错弹出警告if self.E_var.get()!='':self.view_md5()else:self.file_path=askopenfilename()self.E_var.set(self.file_path)self.view_md5()def view_md5(self):#显示md5码try:md5_str,sha1_str=md5_check(self.E_var.get())self.L_md5_message.config(text=md5_str)self.L_sha1_message.config(text=sha1_str)print('md5:',md5_str)print('sha1:',sha1_str)except Exception:messagebox.showwarning(title='警告',message='请选择正确的文件')def change_file_md5(self):print('修改')if self.E_var.get()=='':messagebox.showwarning(title='警告',message='请选择文件')else:try:md5_check(self.E_var.get())new_file_name, md5_str, sha1_str=change_md5(self.E_var.get())self.L_new_message.config(text=new_file_name)self.L_new_md5_message.config(text=md5_str)self.L_new_sha1_message.config(text=sha1_str)except Exception:messagebox.showwarning(title='警告', message='请选择正确的文件')a=App()

md5文件校验部分

def copy_file(file_path):#先复制文件,避免源文件损坏,存放同级目录下new_file_name=os.path.split(file_path)[0]+'\\'+'copy_'+os.path.split(file_path)[1]print(new_file_name)# fw = open(new_file_name, 'w')# flag=Truetry:with open(file_path,'rb') as fr,open(new_file_name, 'wb') as fw:while True:data=fr.read(1024)if not data:breakfw.write(data)print('复制完毕')flag=Truereturn flag,new_file_nameexcept Exception:print('读写失败 ')flag=Falsereturn flag,new_file_namedef change_md5(file_path):flag,new_file_name=copy_file(file_path)if flag:m=open(new_file_name,'a')m.write('@@@@')m.close()md5_str, sha1_str=md5_check(new_file_name)return new_file_name,md5_str,sha1_strelse:print('复制失败')

就是这么简单,自己试一下吧

python,文件md5校验相关推荐

  1. java 文件md5校验_Java 获取 文件md5校验码

    讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...

  2. Python实现文件md5校验

    Linux下校验文件MD5值,最简单的方法就是执行md5sum命令 md5sum filename 原本打算用subprocess调用系统命令来获取md5值, [python] view plainc ...

  3. ET199加密方案——文件MD5校验

    ET199(http://www.jansh.com.cn/product/detail.php?cid=13)采用安全强度最高的智能卡芯片,硬件不能被复制,多重安全级别,并且集成了16位CPU,8K ...

  4. Linux中文件MD5校验

    md5sum命令用于生成文件的md5数字摘要,并可以验证文件内容是否发生了改变,间接地还可以检验两个文件内容是否完全相同.因为md5sum是读取文件内容来计算校验码的,因此只能验证文件内容,而无法验证 ...

  5. Linux文件MD5校验

    1.进入操作系统Linux中的/root目录,找到test.txt文件,并使用md5sum工具来计算出该文件的md5值,并将计算该文件md5的命令的字符串作为flag进行提交: Flag:md5sum ...

  6. 生成文件md5校验码可满足大于2G情况

    对于文件生成md5校验码,在实际开发中用处很大,有利于比较服务器上是否已经存在该文件,哪怕文件名不一致也无所谓. 由于存在超大文件,经过从网上查找,得到两种方法,一种是利用MappedByteBuff ...

  7. python读取大文件md5校验性能优化比较

    with open(filename, "rb") as f: f.read() 读取整个文件,通常将文件内容放到一个字符串变量中: f.readline() 次读取一行内容: f ...

  8. Linux查看文件MD5校验码命令,讲解Linux中校验文件的MD5码与SHA1码的命令使用

    md5sum 用法:md5sum [选项]... [文件]... 显示或检查 MD5(128-bit) 校验和. 若没有文件选项,或者文件处为"-",则从标准输入读取. -b, - ...

  9. md5校验 java_java生成MD5校验码

    在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD5 的128 位整数.然后将此 128 位计 ...

  10. android MD5校验码的生成与算法实现

    android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...

最新文章

  1. wxWidgets:wxStaticLine类用法
  2. Condition总结-CountDownLatch
  3. Flink 在小红书推荐系统中的应用
  4. [Codeforces673A]Bear and Game(水题,思路)
  5. [Java] 蓝桥杯ALGO-100 算法训练 整除问题
  6. EL与JSTL表达式代码示例
  7. 音乐艺考生如何提高视唱练耳技巧
  8. 37、HTMLQQ彩贝高级搜索框页面制作,鼠标悬停出现下拉框
  9. 网刻教程,无光驱装系统
  10. Exception in thread “main“ java.io.NotSerializableException:
  11. dumprep 0 -k引起的重启问题
  12. 自然语言处理中的迁移学习(上)
  13. R语言plotly可视化:使用plotly可视化模型预测真阳性率(True positive)TPR和假阳性率(False positive)FPR在不同阈值(threshold)下的曲线
  14. node.js + Electron 调用 Windows API 踩坑日记
  15. 计算机主机配置单2020,2020电脑配置清单
  16. Java(详解) 1011 A+B 和 C (15 分)
  17. 软碟通 ultraISO制作win10 uefi启动盘无法被电脑识别
  18. iFunk S游戏本,定义机械键盘
  19. echarts修改鼠标悬停在节点上时显示的内容,自定义鼠标悬停显示内容
  20. 微软:这个AI应用能帮助视障儿童找到社交自信

热门文章

  1. POI导出Excel文件中文乱码
  2. 在国外当程序员爽吗?
  3. 清明节偷偷训练“熊猫烧香”,结果我的电脑为熊猫“献身了”!
  4. Unity之读取身份证信息
  5. Java 程序设计基础(第四版)下
  6. Shiro自定义Token
  7. 1000个脑筋急转弯
  8. java+ssh实现级联下拉列表(以行业大类和详细类为例)
  9. 使用V-ASSISTANT软件配置V90伺服驱动器参数的具体步骤详解
  10. 新系统申请软件著作权详细操作说明