我用下面的代碼我在計算器這表明發現是一種有效的方式來獲得的文本文件內容的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