1

可能重复:
在 python 中实现 HMAC-SHA1

`我正在尝试使用 python 进行一些 OAuth 身份验证,但我的 oauth_signature 不断被拒绝。Python 3 对我来说很新,所以有人可以告诉我这段代码有什么问题:

api_key = 'string'
api_secret = 'another_string'
sig_key = api_secret + '&' + api_key
hmac_alg = hmac.new(sig_key.encode('utf-8'), sig_base_str.encode('utf-8'),hashlib.sha1)

signature_base = base64.b64encode(hmac_alg.digest())
url = url_base + '?' + 'oauth_signature=' + urllib.parse.quote(str(signature_base.decode('utf-8')),'') + '&' + str(param_str)

param_str 是&我的输入参数的分隔字符串。HTTP 服务似乎读得很好,因为它会根据我的要求改变输出响应。它只是一直拒绝我的签名。我认为 hmac 是罪魁祸首。

4

1 回答 1

0

你可以试试以下

api_key = b'string'
api_secret = b'another_string'

来自 python 文档

PEP 3112:字节文字。b"..." 字符串文字符号(及其变体,如 b'...'、b"""...""" 和 br"...")现在生成字节类型的文字。

于 2012-12-13T05:25:49.977 回答