2012-09-30 85 views
5

我想比較使用Python哈希值,但我堅持了這個問題:Python的MD5哈希值進行比較

print ('-- '+hashesFile[h]) 
print ('-> ' +hashlib.md5(wordsFile[j]).hexdigest()) 

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

但這種比較是不正確的:

if (hashesFile[h] == hashlib.md5(wordsFile[j]).hexdigest()): 
print ('ok') 

我搜索一個解決方案,並試圖編碼字符串之前進行比較,但是無論如何不工作。

乾杯!

+5

確定兩個字符串不包含空格字符像空格或換行? – Qiau

+0

都是相同類型的字符串(例如它們是unicode字符串,二進制字符串等)?嘗試打印每個值的'repr()'以查看Python認爲它們是什麼。 – Will

回答

3

嘗試打印既是:

print '-- %r' % hashesFile[h] 
print '-> %r' % hashlib.md5(wordsFile[j]).hexdigest()) 

然後你會看到什麼真正的內部。

我想,這會爲你工作:

if (hashesFile[h].strip() == hashlib.md5(wordsFile[j]).hexdigest()): 
    print ('ok')