Python 和其他文件哈希器之间的 MD5 哈希差异

发布于 2024-09-03 02:40:53 字数 705 浏览 5 评论 0原文

我一直在用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

待天淡蓝洁白时 2024-09-10 02:40:53

已经在评论中解决了,但万一有人想给我积分...;)

以二进制模式打开您的文件!

f = open(path, 'rb')

Already resolved in comments, but in case anyone wants to give me points... ;)

Open your file in binary mode!

f = open(path, 'rb')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文