利用python的hashlib模块计算一个文件的MD5值
2018-08-10 11:27:12来源:博客园 阅读 ()
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: #当整个文件读完之后停止update 10 break 11 ret = md5_1.hexdigest() #获取这个文件的MD5值 12 return ret 13 14 15 print(match(r'E:\红军不怕远征难\我与波多野结衣小姐姐的同居生活.avi'))
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash