2012-12-13 21 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