我一直在用 Python 进行一些编程(仍然是一个 n00b)并且遇到了一些奇怪的事情。我做了一个小程序来查找在命令行上传递给它的文件名的 MD5 哈希值。我使用了一个我发现的函数 here所以。当我针对一个文件运行它时,我得到了一个散列“58a...113”。但是当我运行 Microsoft 的 FCIV 时或\Python26\Tools\Scripts\中的 md5sum.py,我得到一个不同的散列,“591...ae6”。 Scripts 中 md5sum.py 的实际散列部分是
m = md5.new()
while 1:
data = fp.read(bufsize)
if not data:
break
m.update(data)
out.write('%s %s\n' % (m.hexdigest(), filename))
这看起来在功能上与另一个答案中给出的函数中的代码相同......我错过了什么? (这是我第一次在 stackoverflow 上发帖,如果我做错了请告诉我。)
请您参考如下方法:
已经在评论中解决了,但万一有人想给我积分...;)
以二进制模式打开文件!
f = open(path, 'rb')
