python计算文件md5_如何在Python中计算文件的md5校验和?

关于您的错误以及代码中缺少的内容。 m是未为getmd5()函数定义的名称。 不冒犯,我知道您是一个初学者,但是您的代码无处不在。 让我们一个个地看一下您的问题:)首先,您没有正确使用hashlib.md5.hexdigest()方法。 请找到有关hashlib函数Python Doc Library的说明。 为提供的字符串返回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 check

file_name = 'filename.exe'

# Correct original md5 goes here

original_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 calculated

if original_md5 == md5_returned:

print "MD5 verified."

else:

print "MD5 verification failed!."

请查看“ Python:生成文件的MD5校验和”一文,其中详细说明了如何有效实现该文件的几种方法。

祝你好运。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值