MD5 散列:必须在散列之前对 Unicode 对象进行编码

Nic*_*Nic 1 python md5 hashlib python-3.x

我有一些代码可以在 Python 3 中散列字符串

import hashlib
hobj = hashlib.md5()
Run Code Online (Sandbox Code Playgroud)

当我使用命令时:

hobj.update('test')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

TypeError: Unicode-objects must be encoded before hashing
Run Code Online (Sandbox Code Playgroud)

小智 5

将字符串编码为 UTF-8(例如):

hobj.update('test'.encode("UTF-8"))
print(hobj.hexdigest())
Run Code Online (Sandbox Code Playgroud)

输出:

098f6bcd4621d373cade4e832627b4f6
Run Code Online (Sandbox Code Playgroud)