Python - Hashlib MD5在Linux和Windows之间有差异
我有一个用Python写的应用程序,在Windows上创建一些包,之后要在Linux的Python应用中使用和比较这些包。我在Windows上为一个文件生成了md5值,准备在Linux上进行检查。问题是,虽然在同一个文件上使用相同的代码,但在不同的环境中得到的md5哈希值却不一样。下面是我用来计算md5的方法。(在Windows和Linux环境中使用的代码是一样的,我都用的是Python 2.6.5)当我在不同的环境中对同一个文件运行这个代码时,得到的md5哈希值不匹配。
def md5_for_file(filePath):
md5 = hashlib.md5()
file = open(filePath)
while True:
data = file.read(8192)
if not data:
break
md5.update(data)
file.close()
return md5.hexdigest()
如果有任何想法或建议,我都非常感激。
2 个回答
0
检查这两个文件是否使用相同的编码和行结束符。
25
把 open(filePath)
改成 open(filePath, 'rb')
,这里的 b
是表示二进制模式。你现在是以文本模式打开文件,这可能会导致一些兼容性问题。