Python 和其他文件哈希器之间的 MD5 哈希差异
我一直在用 Python 进行一些编程(仍然是新手),并遇到了一些奇怪的事情。我编写了一个小程序来查找在命令行上传递给它的文件名的 MD5 哈希值。我使用了我发现的函数 这里关于SO。当我对文件运行它时,我得到了哈希值“58a...113”。但是当我运行 Microsoft 的 FCIV 或 \Python26\Tools\Scripts\ 中的 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 上发帖,如果我做错了,请告诉我。)
I have been doing a bit of programming in Python (still a n00b at it) and came across something odd. I made a small program to find the MD5 hash of a filename passed to it on the command line. I used a function I found here on SO. When I ran it against a file, I got a hash "58a...113". But when I ran Microsoft's FCIV or the md5sum.py in \Python26\Tools\Scripts\, I get a different hash, "591...ae6". The actual hashing part of the md5sum.py in Scripts is
m = md5.new()
while 1:
data = fp.read(bufsize)
if not data:
break
m.update(data)
out.write('%s %s\n' % (m.hexdigest(), filename))
This looks functionally identical to the code in the function given in the other answer... What am I missing? (This is my first time posting to stackoverflow, please let me know if I am doing it wrong.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已经在评论中解决了,但万一有人想给我积分...;)
以二进制模式打开您的文件!
Already resolved in comments, but in case anyone wants to give me points... ;)
Open your file in binary mode!