嗨,使用python功能Python的MD5在终端不匹配MD5
filehash = hashlib.md5(file)
print "FILE HASH: " + filehash.hexdigest()
虽然我得到的一些文件的MD5,当我去到终端,做一个
md5 file
结果我”我得到的是不一样的我的Python脚本输出(他们不匹配)。任何机会有人知道为什么?谢谢。
嗨,使用python功能Python的MD5在终端不匹配MD5
filehash = hashlib.md5(file)
print "FILE HASH: " + filehash.hexdigest()
虽然我得到的一些文件的MD5,当我去到终端,做一个
md5 file
结果我”我得到的是不一样的我的Python脚本输出(他们不匹配)。任何机会有人知道为什么?谢谢。
hashlib.md5()将文件的内容取为其名称。
见http://docs.python.org/library/hashlib.html
您需要打开文件和散列之前阅读其内容。
f = open(filename,'rb')
m = hashlib.md5()
while True:
## Don't read the entire file at once...
data = f.read(10240)
if len(data) == 0:
break
m.update(data)
print m.hexdigest()
什么是file
?它应该等于open(filename, 'rb').read()
。是吗?
试试这个
filehash = hashlib.md5(open('filename','rb').read())
print "FILE HASH: " + filehash.hexdigest()
$ md5 test.py
MD5 (test.py) = 04523172fa400cb2d45652d818103ac3
$ python
Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> s = open('test.py','rb').read()
>>> hashlib.md5(s).hexdigest()
'04523172fa400cb2d45652d818103ac3'
感谢您的回答,完美无缺! – balgan 2010-02-15 19:51:22
很棒的回答。我现在正在使用这个项目。谢谢 – Liam 2010-07-16 15:31:12
@Douglas Leeder:在'f.read(10240)'中读取10240个字节有什么魔力吗?任何想法的最佳尺寸? – dawg 2010-12-27 06:18:13