• Life is short,You need Python
  • 加油吧!!!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

python用hashlib 遇到 TypeError: Unicode-objects must be encoded before hashing

Python Little Cat 271次浏览 已收录 0个评论 扫描二维码

使用hashlib库的朋友想必都遇到过以下的错误吧:“Unicode-objects must be encoded before hashing”,意思是在进行md5哈希运算前,需要对数据进行编码

>>> import hashlib
>>> date = 'gooboys.com'
>>> m = hashlib.md5(date)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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

Little Cat, 版权所有丨如未注明 , 均为原创丨转载请注明THEDARKEYESpython用hashlib 遇到 TypeError: Unicode-objects must be encoded before hashing
喜欢 (2)or分享 (0)
Little Cat
关于作者:
就算你放荡不羁,说话又刻薄,可我喜欢你。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址