2012-12-13 19 views
1

可能重复:
Implementaion HMAC-SHA1 in python产生一个OAuth签名基地蟒蛇

`我试图做一些OAuth认证与Python,但我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是罪魁祸首。

+0

我想我的问题在于将伪代码转换为python。因为hmac不接受字符串。 – Chris

回答

0

你可以试试下面的

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

从Python文档

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

+0

似乎你已经回答了一个完全不同的问题,而不是被问到的问题。 –

+0

我想我明白你在说什么。我试着用这个'key = b'secret&key'',但仍然没有骰子 – Chris