Я пытаюсь понять этот простой код hashlib в Python, который был дан мне на днях в Stackoverflow:
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 объект HASH @ 017F8AE0
md5 объект HASH @ 01806220
md5 HASHobject @ 01806360
md5 HASH объект @ 01806400
md5 HASH объект @ 01806220
Почему это так?Я предполагаю, что то, что у меня есть в каждой строке «@», на самом деле не дайджест.Тогда что это?И как я могу отобразить дайджест MD5 здесь в этом коде?
Моя версия Python - это Python 2.5, а среда, которую я сейчас использую, - это веб-приложение (я скачал его вместе с SDK из "Google App Engine")