2012-09-30 19 views
5

sto cercando di confrontare hash utilizzando Python, ma mi sono bloccato con questo problema:Python hash MD5 confronto

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

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

Ma questo confronto non è mai vero:

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

ho cercato una soluzione e ha provato a codificare la stringa prima di confrontarli, ma non funziona comunque.

Saluti !!

+5

Sei sicuro entrambe le stringhe non contiene caratteri di spazio bianco come lo spazio o il ritorno a capo? – Qiau

+0

Sono entrambe le stringhe dello stesso tipo (ad esempio stringhe unicode, stringhe binarie, ecc.)? Prova a stampare 'repr()' di ciascuno dei valori per vedere cosa pensano di essere Python. – Will

risposta

3

tenta di stampare sia come:

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

allora vedrete che cosa è veramente dentro.

Suppongo che questo lavoro per voi:

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