md5无法解码字节

时间:2018-03-28 20:33:27

标签: python python-3.x md5 url-encoding hashlib

我正在尝试使用python3库在hashlib中调用服务。此代码中的最后一行抛出异常:

auth = hashed.digest().decode("utf-8").rstrip('\n')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 0: invalid start byte

以下是代码段:

import hashlib
m = hashlib.md5()
m.update("".encode("utf-8"))
data_hash = base64.b64encode(m.digest()).decode("utf-8")

# Create Authorization Header
canonical = '%s,application/vnd.api+json,%s,%s,%s' % (action, data_hash, url, format_date_time(stamp))
canonical = canonical.encode("utf-8")

hashed = hmac.new(bytearray(secret, "utf-8"), canonical, sha1)
auth = hashed.digest().decode("utf-8").rstrip('\n')

我错过了什么?

1 个答案:

答案 0 :(得分:-1)

hashed.digest().decode("utf-8").rstrip('\n')

摘要返回字节,但不是任何字节序列都是有效的UTF-8。

我不知道你要完成什么,但这段代码存在缺陷。