栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Python中计算文件的MD5校验和?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Python中计算文件的MD5校验和?

关于您的错误以及代码中缺少的内容。

m
是未为
getmd5()
功能定义的名称。

不冒犯,我知道您是一个初学者,但是您的代码无处不在。让我们一一看待您的问题:)

首先,您没有

hashlib.md5.hexdigest()
正确使用方法。请参考Python Doc
Library中
有关hashlib函数的说明。为提供的
字符串 返回MD5的正确方法是执行以下操作:

>>> import hashlib>>> hashlib.md5("filename.exe").hexdigest()'2a53375ff139d9837e93a38a279d63e5'

但是,您这里有一个更大的问题。您正在根据 文件名字符串 计算MD5 ,实际上MD5是根据文件 内容
计算的。您将需要基本读取文件内容并将其通过MD5传输。我的下一个示例效率不是很高,但类似这样:

>>> import hashlib>>> hashlib.md5(open('filename.exe','rb').read()).hexdigest()'d41d8cd98f00b204e9800998ecf8427e'

如您所见,第二个MD5哈希与第一个完全不同。这样做的原因是我们要推送文件的内容,而不仅仅是文件名。

一个简单的解决方案可能是这样的:

# import hashlib library (md5 method is part of it)import hashlib# File to checkfile_name = 'filename.exe'# Correct original md5 goes hereoriginal_md5 = '5d41402abc4b2a76b9719d911017c592'# Open,close, read file and calculate MD5 on its contents with open(file_name) as file_to_check:    # read contents of the file    data = file_to_check.read()        # pipe contents of the file through    md5_returned = hashlib.md5(data).hexdigest()# Finally compare original MD5 with freshly calculatedif original_md5 == md5_returned:    print "MD5 verified."else:    print "MD5 verification failed!."

请查看“
Python:生成文件的MD5校验和”一文 。它详细说明了几种方法可以有效地实现它。

祝你好运。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号