我用下面的代码我在计算器这表明发现是一种有效的方式来获得的文本文件内容的MD5哈希值,并与生成MD5哈希我从http://www.miraclesalad.com/webtools/md5.phpPython的比较
了比较MD5哈希但是..它不是返回相同的MD5散列,我不知道我出错了。文件内容与我用来生成md5散列的文本完全匹配,因此它应该匹配,但不会返回相同的匹配。
基本上,我想生成一些文本的MD5散列,并将其与文本文件的内容进行比较,以查看它是否匹配。
def md5Checksum(filePath):
with open(filePath, 'rb') as fh:
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
如果我创建一个内容为“测试”的文本文件,也去http://www.miraclesalad.com/webtools/md5.php,键入“测试”和随后产生的哈希比较这两个他们都是不同的。
无论文件内容如何,我回来的散列总是相同的。
代码比较哈希
filetext = 'LOCATIONTOFILE.txt'
filemd5 = '098f6bcd4621d373cade4e832627b4f6'
if not filemd5 == md5Checksum(filetxt):
我试着打印数据和两个数据都完全一样了。从网站的test
哈希:文本文件与内容test
d41d8cd98f00b204e9800998ecf8427e
UPDATE
解决了该问题由于亚当·斯密098f6bcd4621d373cade4e832627b4f6
哈希值。
这是一个识别错误,所以没有返回更新hashlib。
当您在测试文件上运行代码时,看到代码产生的散列会很有帮助。 – jaynp
我已更新我的帖子,提供更多信息。无论文本文件的内容如何,我回来的散列都是一样的。 –
现在我看到了......'d41d8cd98f00b204e9800998ecf8427e'是一个空文件。 :)你确定它正在读取完全相同的文件吗? – Caramiriel