Python中的Hexdigest

时间:2015-06-05 07:20:31

标签: python-2.7 md5

检查时,两个相同CSV文件的Hexdigest md5值有何不同。两个CSV文件之间的区别在于,一个是制表符分隔,另一个是逗号分隔,否则值相同。

f1 = open(r'D:\Temporary\New File.csv',mode='r')
f2 = open(r'D:\Temporary\Old File.csv',mode='r')
print hashlib.md5(t1).hexdigest(),'    ',hashlib.md5(t2).hexdigest()
if hashlib.md5(t1).hexdigest()== hashlib.md5(t2).hexdigest():
    print "Match"
else:
    print "Not Match"

输出显示:

a4b2720cafdcb859e7ef07a7a3564ba3      237a5c28b890f94636035482a363853a
Not Match

另一方面,这段代码给出了正确的输出,我引入了read()函数,然后获取了md5摘要。现在键匹配

f1 = open(r'D:\Temporary\New File.csv',mode='r')
f2 = open(r'D:\Temporary\Old File.csv',mode='r')
print f1.read()
print f2.read()
print hashlib.md5(t1).hexdigest(),'    ',hashlib.md5(t2).hexdigest()
if hashlib.md5(t1).hexdigest()== hashlib.md5(t2).hexdigest():
    print "Match"
else:
    print "Not Match"

现在,输出是:

Ultimator Start Code Start Count    
Ultimator,Start Code,Start Count,,,,
d41d8cd98f00b204e9800998ecf8427e      d41d8cd98f00b204e9800998ecf8427e
Match

1 个答案:

答案 0 :(得分:1)

MD5是一个加密哈希函数,用于处理文件的原始数据。如果两个CSV文件具有相同的内容(仅供您考虑),只使用不同的分隔符,则原始数据会有所不同。这就是为什么MD5 hexdigest值也必须不同。

之前调用file.read时,此文件的位置指针将位于文件的末尾,并在返回file.read后再次调用''

>>> hashlib.md5('').hexdigest()
'd41d8cd98f00b204e9800998ecf8427e'