2012-09-30 38 views
5

Estoy tratando de comparar los valores hash utilizando Python, pero estoy atascado con este problema:Python hashes MD5 comparación

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

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

Pero esta comparación no es nunca verdadera:

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

Busqué una solución y trató de codificar la cadena antes de compararlos, pero no funciona de todos modos.

¡Salud!

+5

¿Seguro de ambas cadenas no contiene caracteres de espacio en blanco como espacio o salto de línea? – Qiau

+0

¿Las dos cadenas son del mismo tipo (por ejemplo, cadenas unicode, cadenas binarias, etc.)? Intenta imprimir 'repr()' de cada uno de los valores para ver lo que Python cree que son. – Will

Respuesta

3

intenta imprimir tanto como:

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

entonces usted verá cuál es realmente dentro.

supongo que esto va a funcionar para usted:

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