使用hashlib库的朋友想必都遇到过以下的错误吧:“Unicode-objects must be encoded before hashing”,意思是在进行md5哈希运算前,需要对数据进行编码
>>> import hashlib >>> date = 'gooboys.com' >>> m = hashlib.md5(date) Traceback (most recent call last): File "", line 1, in TypeError: Unicode-objects must be encoded before hashing
只需进行转码一下可以了,下面是解决方法:
>>> m = hashlib.md5(date.encode('utf-8'))
>>> print(m.hexdigest())
7ba10da18d9aecb8e25907a32c0eecee
>>>
在实验楼处进行python验证码破解的实验中遇到的错误,代码片段,附上正确的解法:
for letter in letters:
m = hashlib.md5()
im3 = im2.crop((letter[0], 0, letter[1], im2.size[1]))
# m.update(("%s%s" % (time.time(), count))) 原代码
# 正确代码
m.update(("%s%s" % (time.time(), count)).encode('utf-8'))
im3.save("./%s.gif" % (m.hexdigest()))
count += 1
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
