2012-09-30 13 views
5

मैं अजगर का उपयोग कर हैश तुलना करने के लिए कोशिश कर रहा हूँ हेश, लेकिन मैं इस समस्या के साथ अटक कर रहा हूँ:अजगर md5 तुलना

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

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

लेकिन इस तुलना कभी नहीं सच है:

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

मैं के लिए खोज की एक समाधान और तुलना करने से पहले स्ट्रिंग को एन्कोड करने का प्रयास किया, लेकिन वैसे भी काम नहीं करता है।

चीयर्स !!

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

तो आप वास्तव में अंदर क्या देखेंगे:

+5

क्या आप वाकई दोनों तार अंतरिक्ष या न्यू लाइन की तरह कोई खाली स्थान के वर्ण शामिल हैं? – Qiau

+0

दोनों एक ही प्रकार के तार हैं (उदा। वे यूनिकोड स्ट्रिंग्स, बाइनरी स्ट्रिंग इत्यादि हैं)? पाइथन सोचता है कि वे क्या हैं, यह देखने के लिए प्रत्येक मान के 'repr()' को प्रिंट करने का प्रयास करें। – Will

उत्तर

3

मुद्रित करने के लिए दोनों के रूप में की कोशिश करो।

मुझे लगता है कि यह आपके लिए काम करेंगे:

if (hashesFile[h].strip() == hashlib.md5(wordsFile[j]).hexdigest()): 
    print ('ok') 
संबंधित मुद्दे