2012-09-30 17 views
5
Python kullanarak sağlamalarının karşılaştırmak çalışıyorum

sağlamalarının, ama bu sorun ile şaşırıp:Python md5 karşılaştırma

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

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

Ama bu karşılaştırma asla doğrudur: Ben aramış

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

bir çözüm ve dizeyi karşılaştırmadan önce kodlamayı denedi, ancak yine de çalışmıyor.

Şerefe!

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

o zaman gerçekten içeride neyin göreceksiniz:

+5

size her iki dizeleri boşluk veya yeni satır gibi hiçbir boşluk karakter içerdiğinden emin misiniz? – Qiau

+0

Her ikisi de aynı türde dizelerdir (ör., Bunlar unicode dizeleri, ikili dizeler vb.)? Python'un olduklarını düşündüklerini görmek için her bir değerin repr() 'ını yazdırmayı deneyin. – Will

cevap

3

hem de yazdırmayı deneyin.

Bunun sizin için çalışacaktır varsayalım:

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