Python校验文件MD5值
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值的更多相关文章
- python 计算文件md5值
md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...
- Python计算文件MD5值
import hashlib def fileMD5(filename): m = hashlib.md5() #md5计算 #m = hashlib.sha1() #sha1计算 #m = hash ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- java计算过G文件md5 值计算
package io.bigdata; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...
- QT 获取文件MD5值
/* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptogra ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- C# 获取文件MD5值的方法
可用于对比文件是否相同 /// <summary> /// 获取文件MD5值 /// </summary> /// <param name="fileName& ...
- 基于js-spark-md5前端js类库,快速获取文件Md5值
js-spark-md5是歪果仁开发的东西,有点多,但是我们只要一个js文件即可,具体类包我存在自己的oschina上,下载地址:https://git.oschina.net/jianqingwan ...
- C#统计目录中文件MD5值
1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...
随机推荐
- 阿里云服务器 centos7 中继邮箱+转发服务 详细配置
阿里云centos7 邮箱转发服务配置 一.文档编写目的: 网络拓扑图: 阿里云服务器屏蔽掉25端口后,内网服务器如何通过跳板机发送邮件到外网邮箱. 如果是可联网的阿里云机器,可以直接配置mailx使 ...
- JSON 序列化与反序列化, 与XML相互转换.
方式一: 使用于 JavaScriptSerializer类 适用于普通场景, Excel导入导出, 前台传输查询参数直接处理等. JavaScriptSerializer serializer = ...
- select拼接
//if (Data1[i].MisFunId == 1) //{ // if (Data1[i].Flag == true) // { // var t = Data1[i].MisFunId; / ...
- Docker CMD in detail
CMD CMD 指令就是用于指定默认的容器主进程的启动命令的,我们直接 docker run -it ubuntu 的话,会直接进入 bash.我们也可以在运行时指定运行别的命令,如 docker r ...
- Layout-1相关代码
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现
php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现 function data_uri($contents, $mime) { $base64 = base64_encode($c ...
- js原生倒计时
倒计时是2019年6月7号10点开始的 代码粘贴过去直接运行即可 <!DOCTYPE html> <html lang="en"> <head> ...
- Powerdesigner16 逆向 postgresql9.2
参考配置连接:https://www.cnblogs.com/simpleZone/p/5489781.html 过程中遇到的问题: 1.Powerdesigner需要用32位的jdk进行逆向,所以需 ...
- 13. nginx,lvs之一
摘要: 1.详细描述常见nginx常用模块和模块的使用示例 2.简述Linux集群类型.系统扩展方式及调度方法 3.简述lvs四种集群有点及使用场景 4.描述LVS-NAT.LVS-DR的工作原理并实 ...
- python大法好——Python XML解析
Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...