我一直在用Python做一些编程(仍然是n00b)并且遇到了一些奇怪的事情。我做了一个小程序来查找在命令行传递给它的文件名的MD5哈希值。我在SO上使用了一个我发现here的函数。当我对文件运行它时,我得到一个哈希“58a ... 113”。但是当我在\ Python26 \ Tools \ Scripts \中运行Microsoft的FCIV或md5sum.py时,我得到一个不同的哈希,“591 ... ae6”。脚本中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,如果我做错了,请告诉我。)
答案 0 :(得分:8)
已在评论中解决,但万一有人想给我点数;;)
以二进制模式打开文件!
f = open(path, 'rb')