import hashlib
import os def GetFileMd5(filename):
if not os.path.isfile(filename):
return
myHash = hashlib.md5()
f = open(filename,'rb')
while True:
b = f.read(8096)
if not b :
break
myHash.update(b)
f.close()
return myHash.hexdigest() print(GetFileMd5('/Users/binyun007/Desktop/xxx')) #文件路径

窗口模式, 需要pip安装PyQt5

import sys
import os
import hashlib
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
from PyQt5.Qt import QLineEdit class App(QWidget): def __init__(self):
super().__init__()
self.title = 'MD5校验'
self.left = 800
self.top = 600
self.width = 320
self.height = 200
self.initUI() def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height) # create textbox
self.textbox = QLineEdit(self)
# self.textbox.setText('/Users/binyun007/Desktop/') #设置文本框的默认值
self.textbox.setText(FileRecord.readpath()) #读取文本框的默认值
self.textbox.move(20, 20)
self.textbox.resize(280, 40) # Create a button in the window
self.button = QPushButton('校验', self)
self.button.move(20, 80) # connect button to function on_click
self.button.clicked.connect(self.on_click)
self.show() def on_click(self):
textboxValue = self.textbox.text()
md5 = GetFileMd5(textboxValue)
QMessageBox.question(self, "Message", 'MD5:' + md5,
QMessageBox.Ok,QMessageBox.Ok)
"""打印完毕之后设置文本框默认值为上一次使用后的"""
FileRecord.writpath(textboxValue)
#self.textbox.setText(textboxValue) # #保存、读取MD5记录
class FileRecord(): #保存
def writpath(filepath):
with open('md5.txt','w') as f:
f.write(filepath) #读取
def readpath():
try:
with open('md5.txt','r') as f:
record = f.readline()
return record #如果文件不存在创建
except FileNotFoundError:
with open('md5.txt','w') as f:
return #校验MD5值
def GetFileMd5(filename):
if not os.path.isfile(filename):
return
myHash = hashlib.md5()
f = open(filename,'rb')
while True:
b = f.read(8096)
if not b :
break
myHash.update(b)
f.close()
return myHash.hexdigest() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
app.exit(app.exec_())

Python校验文件MD5值的更多相关文章

  1. python 计算文件md5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

  2. Python计算文件MD5值

    import hashlib def fileMD5(filename): m = hashlib.md5() #md5计算 #m = hashlib.sha1() #sha1计算 #m = hash ...

  3. MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能

    MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...

  4. java计算过G文件md5 值计算

    package io.bigdata; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...

  5. QT 获取文件MD5值

    /* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptogra ...

  6. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  7. C# 获取文件MD5值的方法

    可用于对比文件是否相同 /// <summary> /// 获取文件MD5值 /// </summary> /// <param name="fileName& ...

  8. 基于js-spark-md5前端js类库,快速获取文件Md5值

    js-spark-md5是歪果仁开发的东西,有点多,但是我们只要一个js文件即可,具体类包我存在自己的oschina上,下载地址:https://git.oschina.net/jianqingwan ...

  9. C#统计目录中文件MD5值

    1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...

随机推荐

  1. android 显示大图模糊问题

    使用Glide 版本为4.8.0 /* */ Glide.with(context).asBitmap().load(url).into(new SimpleTarget<Bitmap>( ...

  2. 【坑】linux目录软连接的相关操作--很容易误操作

    写一下文档,记录自己工作中的重大事故,警醒自己以后别犯错. 1)目录不能进行硬连接,只能进行软连接,也就是 ln命令必须加上 -s 参数,如下: [root@ALIYUN:~]#ln /srv/bak ...

  3. 设计模式<2>------工厂模式和抽象工厂模式------创建型

    简单工厂: 拿我们的简单三层举例子 先定义dal层 class Dal { public void Delete() { } } 工厂类 class Factory { //这样掉的好处是 当dal层 ...

  4. GPIO输入输出各种模式(推挽、开漏、准双向端口)详解

    转自:https://blog.csdn.net/techexchangeischeap/article/details/72569999 概述 能将处理器的GPIO(General Purpose ...

  5. redis哨兵架构的基础知识及部署和管理

    一.前言 1.哨兵的介绍 sentinal,中文名是哨兵 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 ()集群监控,负责监控redis master和slave进程是否正常工作 ()消 ...

  6. 部署GlusterFS及Heketi

    一.前言及环境 在实践kubernetes的StateFulSet及各种需要持久存储的组件和功能时,通常会用到pv的动态供给,这就需要用到支持此类功能的存储系统了.在各类支持pv动态供给的存储系统中, ...

  7. golang 统计uint64 数字二进制存储中1的数量

    package main import (    "fmt") // pc[i] is the population count of i.var pc [256]byte fun ...

  8. 接口测试 - ti

    脚本 主程序 #!/bin/bash . /etc/ti/ti.conf . /etc/ti/ti.fun #-basic.json | curl -H "Content-Type:appl ...

  9. dubbo rest服务 No provider available for the service 错误问题

    1.版本 dubbo 2.6.2 2.描述 消费者调用dubbo rest服务报No provider available for the service错误 网络上有讲是实体类未实现Serializ ...

  10. python 匿名函数&内置函数

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数怎么定义匿名函数: cal = lambda x : x*x # cal是函数名,lambda是定义匿名函数的关键字 冒号前面的额x是参数即函数 ...