gpt4 book ai didi

Python比较本地和远程文件的MD5 Hash

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:03 26 4
gpt4 key购买 nike

我正在尝试比较本地和远程文件的 MD5 哈希值(我在我的 wamp“www”目录中复制/粘贴的同一文件),但我不明白为什么“校验和”不对应......

这是校验和代码:

#-*- coding: utf-8 -*-

import hashlib
import requests

def md5Checksum(filePath,url):
if url==None:
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
else:
r = requests.get(url, stream=True)
m = hashlib.md5()
for line in r.iter_lines():
m.update(line)
return m.hexdigest()

print "checksum_local :",md5Checksum("projectg715gb.pak",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/projectg715gb.pak")

我很惊讶得到这个输出:

checksum_local : 9d33806fdebcb91c3d7bfee7cfbe4ad7
checksum_remote : a13aaeb99eb020a0bc8247685c274e7d

“projectg715gb.pak”的大小是14.7Mb

但是如果我尝试使用文本文件(大小 1Kb):

print "checksum_local :",md5Checksum("toto.txt",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/toto.txt")

然后它工作了 oO 我得到了这个输出:

checksum_local : f71dbe52628a3f83a77ab494817525c6
checksum_remote : f71dbe52628a3f83a77ab494817525c6

我是比较 MD5 散列的新手,所以请多多关照 ^^' 我可能犯了一些大错误,我不明白为什么它对大文件不起作用,如果有人能给我提示,它会 super 好!

但是感谢阅读和帮助!

最佳答案

所以感谢帮助者,这里是最终代码的工作:

#-*- coding: utf-8 -*-

import hashlib
import requests

def md5Checksum(filePath,url):
m = hashlib.md5()
if url==None:
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
else:
r = requests.get(url)
for data in r.iter_content(8192):
m.update(data)
return m.hexdigest()

print "checksum_local :",md5Checksum("projectg715gb.pak",None)
print "checksum_remote :",md5Checksum(None,"http://testpangya.ddns.net/projectg715gb.pak")

关于Python比较本地和远程文件的MD5 Hash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54483868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com