Мне нужна помощь в понимании хеширования md5 для python 3.4.3
Я просто тестирую хеширование md5 в питоне 3.4.3. И я не понимаю, какие результаты я получаю. Я пытаюсь сравнить хешированный пароль в моей базе данных sql, но каждый раз, когда я пытаюсь это сделать, я получаю другой результат. Вот код, который я создал, чтобы проиллюстрировать мою проблему:
import hashlib
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
p = '5'
for i in x:
k = hashlib.md5(p.encode('utf-8'))
print(k)
Результаты:
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
1 ответ
Решение
Ваш вывод печатает адреса HASH
объект, а не сам дайджест MD5.
Если вы хотите увидеть это, то позвоните digest()
на этом объекте. Это вернет 128-битный вывод MD5 в виде 16-байтовой строки. Если вы хотите распечатать его в шестнадцатеричном формате, используйте hexdigest()
вместо:
k = hashlib.md5(p.encode('utf-8')).hexdigest()