我需要帮助理解 python 3.4.3 的 md5 哈希

I need help understanding md5 hashing for python 3.4.3

我只是在 python 3.4.3 中测试 md5 散列。而且我不明白我得到的结果。我正在尝试比较 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>

您的输出打印的是 HASH 对象的地址,而不是 MD5 摘要本身。

如果您想看到它,请对该对象调用 digest()。这将 return MD5 的 128 位输出作为 16 字节的字符串。如果您想以十六进制打印出来,请改用 hexdigest()

k = hashlib.md5(p.encode('utf-8')).hexdigest()