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

时间:2015-11-19 23:29:44

标签: python hash md5 password-encryption

我只是在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>

1 个答案:

答案 0 :(得分:4)

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

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

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