Я пытаюсь понять этот простой код hashlib в Python, который был дан мне на днях на Stackoverflow:Является ли это дайджестом MD5 в этом скрипте Python?
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 фразу: «Никто не осматривает spammish повторение здесь», но в итоге я получил эту линию на моем локальном хосте:
<md5 HASH object @ 01806220>
Strange, когда я обновил страницу, я получил еще одну строку:
<md5 HASH object @ 018062E0>
и каждый раз, когда я обновить его, я получаю еще одно значение:
md5 объект HASH @ 017F8AE0
md5 HASH объект @ 01806220
md5 HASH объект @ 01806360
md5 HASH-объект @ 01806400
md5 HASH-объект @ 01806220
Почему это так? Я думаю, что у меня в каждой строке, текущей «@», на самом деле не дайджест. Тогда что это? И как я могу отобразить дайджест MD5 здесь в этом коде?
Мой питон версия Python 2.5 и структура В настоящее время я использую это веб-приложение (я скачал его вместе с SDK от «Google App Engine»)
@ KennyTM: Спасибо, Кенни. Можете ли вы рассказать мне, что такое «объект __str__»? – brilliant
@brilliant: 'x .__ str __()' эквивалентно 'str (x)'. – kennytm
@ KennyTM: Я вижу, спасибо, Кенни !!! – brilliant