Python检查和计算MD5校验值时出错

2024-10-01 00:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python做了一个下载管理器来自动验证md5校验和。。。问题是python给出了一个错误的md5,我用第三方md5验证软件进行了交叉检查。在

我用hashlib来检查md5。。 这是我的md5校验和代码 对于某些文件来说,md5是正确的,但对于其他文件则完全错误。。。在

x= sys.path[0]
x= x + '\\' + file_name
print 'file successfully saved to path', x
file_ref=open(x,'rb').read()
hashlib.md5(file_ref).hexdigest()
print 'MD5 of file is:',hashlib.md5(file_ref).hexdigest()

网站上原始文件的md5:e557fa76ed485fd10e8476377ad5be95

python给出的md5:cb3b222773d3344dba15e5e39d04f43

md5验证人给出的md5:e557fa76ed485fd10e8476377ad5be95

请帮忙:/


Tags: 文件path代码ref管理器软件错误校验
1条回答
网友
1楼 · 发布于 2024-10-01 00:20:17

对于某些文件,它是正确的,但对于其他文件则是错误的,您可以检查您的路径。这是我用于md5的方法:

def hashsum(path, hex=True, hash_type=hashlib.md5):
    hashinst = hash_type()
    with open(path, 'rb') as f:
        for chunk in iter(lambda: f.read(hashinst.block_size * 128), b''):
            hashinst.update(chunk)
    return hashinst.hexdigest() if hex else hashinst.digest()

你可以用这个来比较:

^{pr2}$

其中cfile是文件的路径。我猜你走错了路。我猜是windows,所以sys.path[0]不是获取当前目录的正确方法。在

相关问题 更多 >