我试图理解前几天在 Stackoverflow 上给我的 Python 中这个简单的 hashlib 代码:
import hashlib
m = hashlib.md5()
m.update("Nobody inspects")
m.update(" the spammish repetition here")
m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
m.digest_size
16
m.block_size
64
print m
我认为这print m
会向我显示短语的 MD5 摘要:“没有人检查这里的垃圾邮件重复”,但结果我在本地主机上得到了这一行:
<md5 HASH object @ 01806220>
奇怪,当我刷新页面时,我得到了另一行:
<md5 HASH object @ 018062E0>
每次刷新它时,我都会得到另一个值:
md5 哈希对象@017F8AE0
md5 哈希对象@01806220
md5 哈希对象@01806360
md5 哈希对象@01806400
md5 哈希对象@01806220
为什么会这样?我想,我在每一行流动“@”的内容并不是真正的摘要。那这是什么?以及如何在此代码中显示 MD5 摘要?
我的python版本是Python 2.5,我目前使用的框架是webapp(我已经从“Google App Engine”下载了它和SDK)