2012-09-30 36 views
5

Tôi đang cố gắng để so sánh băm sử dụng Python, nhưng tôi bị mắc kẹt với vấn đề này:Python md5 băm so

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

-- 5d21e42d34fc1563bb2c73b3e1811357 
-> 5d21e42d34fc1563bb2c73b3e1811357 

Nhưng sự so sánh này là không bao giờ thành sự thật:

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

Tôi tìm kiếm một giải pháp và cố mã hóa chuỗi trước khi so sánh chúng, nhưng không hoạt động.

Chúc mừng !!

+5

Bạn có chắc chắn cả hai chuỗi không chứa ký tự khoảng trắng như không gian hoặc xuống dòng? – Qiau

+0

Cả hai chuỗi có cùng loại (ví dụ: chúng có các chuỗi unicode, chuỗi nhị phân, v.v.) không? Hãy thử in 'repr()' của mỗi giá trị để xem Python nghĩ chúng là gì. – Will

Trả lời

3

cố gắng in cả hai như:

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

sau đó bạn sẽ xem whats thực sự bên trong.

Tôi cho rằng điều này sẽ làm việc cho bạn:

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