博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过python的hashlib模块计算一个文件的MD5值
阅读量:4505 次
发布时间:2019-06-08

本文共 1105 字,大约阅读时间需要 3 分钟。

  Python的hashlib提供了很多摘要算法,如MD5,SHA1等常用算法。

  什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(如MD5值共32位,且每位都是用16进制进行表示)。

  摘要算法就是通过摘要函数对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。

  摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算digest很容易,但通过digest反推数据data却非常困难,并且对原始数据做出任意的修改都会导致计算出的digest完全不同。

  综上所述,只要是一个完整且未被修改过的文件,它的MD5值或者其他算法值都是固定不变的,一旦计算出数值与原作者给出的数值不同,就要当心此文件的安全性了。

那么,利用python怎么计算一个文件的MD5值呢?以下是简写代码:

1 import hashlib                                   #导入hashlib模块 2 def match(file_path,Bytes=1024): 3     md5_1 = hashlib.md5()                        #创建一个md5算法对象 4     with open(file_path,'rb') as f:              #打开一个文件,必须是'rb'模式打开 5         while 1: 6             data =f.read(Bytes)                  #由于是一个文件,每次只读取固定字节 7             if data:                          #当读取内容不为空时对读取内容进行update 8                 md5_1.update(data) 9             else:                             #当整个文件读完之后停止update10                 break11     ret = md5_1.hexdigest()                   #获取这个文件的MD5值12     return ret13 14 15 print(match(r'E:\红军不怕远征难\我与波多野结衣小姐姐的同居生活.avi'))

 

转载于:https://www.cnblogs.com/zepc007/p/9449902.html

你可能感兴趣的文章
学生空间bug report
查看>>
shanchushanchu
查看>>
linux下使用autoconf制作Makefile
查看>>
快来秒杀我
查看>>
Python_阻塞IO、非阻塞IO、IO多路复用
查看>>
爬虫超时解决的方法
查看>>
网络技术和科技革命周末随想
查看>>
Codeforces 10C Digital Root 法冠军
查看>>
华为-on演习--身高找到最好的二人
查看>>
debian软件安装基础(同tomcat案件)
查看>>
如何面对客户的紧急需求
查看>>
【转载】嵌入式linux学习规划
查看>>
[转帖]和机器学习和计算机视觉相关的数学
查看>>
mp4格式(转帖加修改) 转载
查看>>
JAVA类加载和初始化
查看>>
SMTP发送邮件
查看>>
关于句柄
查看>>
java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
查看>>
Vue学习之路第十七篇:全局过滤器的使用
查看>>
Http传输Header解释
查看>>