介绍
利用python怎么对文件的MD5值进行计算?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
一、计算字符串的MD5值
# !/usr/bin/env python #,- *安康;编码:utf-8 - * - import 系统 import hashlib 重载(系统) sys.setdefaultencoding (& # 39; utf - 8 # 39;) if __name__ ==, & # 39; __main__ # 39;: content =,才能“hello" 时间=md5hash 才能;hashlib.md5(内容) 时间=md5 才能;md5hash.hexdigest () 打印才能(md5)
,运行上述代码,输出:5 d41402abc4b2a76b9719d911017c592
用PHP自带的md5函数计算同一个字符串,验证下喂的md5是否正确。
& lt; PHP ? 时间=美元才能content “hello"; 美元才能md5 =, md5($内容); var_dump (md5美元)才能,,,//,输出,5 d41402abc4b2a76b9719d911017c592
二,计算文件的md5值
# !/usr/bin/env python #,- *安康;编码:utf-8 - * - import 系统 import hashlib 重载(系统) sys.setdefaultencoding (& # 39; utf - 8 # 39;) if __name__ ==, & # 39; __main__ # 39;: 时间=file_name 才能;“3383430480 _51_01.jpg" with 才能;开放(file_name, & # 39; rb # 39;), as 外交政策: ,,,data =, fp.read () file_md5才能=,hashlib.md5(数据).hexdigest () 打印(file_md5)才能,,,#,ac3ee699961c58ef80a78c2434efe0d0
文件md5计算跟字符串计算是一样,直接使用hashlib的md5方法,然后hexdigests就好了。同样用PHP代码验证下
& lt; PHP ? 时间=美元才能file_name “3383430480 _51_01.jpg"; 时间=美元才能file_md5 md5_file ($ file_name); var_dump (file_md5美元)才能,,,//,输出,ac3ee699961c58ef80a78c2434efe0d0
从结果可以看出md5是一样的,文件md5值也不过如此呀,心里窃喜…
如果大文件呢,比如几个G呢,上述代码肯定会内存溢出,怎么办呢,可以分块读取文件内容并计算。
三,计算大文件的md5值
# !/usr/bin/env python #,- *安康;编码:utf-8 - * - import 系统 import hashlib def get_file_md5(帧): 时间=m 才能;hashlib.md5(),, #创建md5对象 with 才能打开(帧& # 39;rb # 39;), as fobj: ,,,while 正确的: ,,,,,data =, fobj.read (4096) ,,,,,if not 数据: ,,,,,,,休息 ,,,,,m.update(数据),#更新md5对象 return 才能;m.hexdigest(),, #返回md5对象 重载(系统) sys.setdefaultencoding (& # 39; utf - 8 # 39;) if __name__ ==, & # 39; __main__ # 39;: file_name =,才能“mongodb_us.zip" 时间=file_md5 才能;get_file_md5 (file_name) 打印(file_md5)才能,,,#,0 f45cdbf14de54001e82a17c3d199a4b
四、封装成常用库md5。py
# !/usr/bin/env python #,- *安康;编码:utf-8 - * - import hashlib def get_file_md5 (file_name): “才能”;“ 计才能算文件的md5 :才能param file_name: ,,:返回: “才能”;“ 时间=m 才能;hashlib.md5(),, #创建md5对象 with 才能打开(file_name & # 39; rb # 39;), as fobj: ,,,while 正确的: ,,,,,data =, fobj.read (4096) ,,,,,if not 数据: ,,,,,,,休息 ,,,,,m.update(数据),#更新md5对象 return 才能;m.hexdigest(),, #返回md5对象 def get_str_md5(内容): “才能”;“ 计才能算字符串md5 ,,:param 内容: ,,:返回: “才能”;“ 时间=m 才能;hashlib.md5(内容),#创建md5对象 return 才能;m.hexdigest ()
关于利用python怎么对文件的MD5值进行计算问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。