小编Sha*_*hab的帖子

hashlib.md5()TypeError:必须在散列之前对Unicode对象进行编码

我是编码的新手,并且在尝试编码字符串时遇到了问题.

>>> import hashlib
>>> a = hashlib.md5()
>>> a.update('hi')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a.update('hi')
TypeError: Unicode-objects must be encoded before hashing
>>> a.digest()
b'\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\t\x98\xec\xf8B~'
Run Code Online (Sandbox Code Playgroud)

(a)现在被认为是编码的吗?

第二个问题:当我在脚本中运行上面相同的代码时,我收到此错误:

import hashlib
a = hashlib.md5()
a.update('hi')
a.digest()
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):文件"C:/ Users/User/Desktop/Logger/Encoding practice.py",第3行,a.update('hi')TypeError:必须在散列之前对Unicode对象进行编码

为什么代码在shell中工作而不是脚本?我正在使用Windows和Python 3.4

谢谢.

python hash encoding python-3.x

20
推荐指数
3
解决办法
4万
查看次数

标签 统计

encoding ×1

hash ×1

python ×1

python-3.x ×1