我還沒有真正挖到深入到Django和簽名我如何在Django上簽名sha1簽名?
我試圖創建一個基於特定要求的簽名
我=我的用戶名,V =到期,和s =簽名
I:名爲myUsername
ν: Unix時間戳+2小時
一個: MY_API_KEY
個S: SHA1簽名是( 「I = MyUserName輸入& V =(UNIX_TIMESTAMP + API_KEY)」)
我有什麼事這麼遠。
import hashlib
import datetime
from datetime import timedelta
import time
now = datetime.datetime.now()
now = now + timedelta(hours=2)
seconds = time.mktime(now.timetuple())
seconds = seconds
API = "87df234207v4444444"
signature = hashlib.sha1()
signature.update("i=MYUSERNAME&v=%s%s" % (seconds, API))
然後當我平安的URL,我得到一個「壞標記」響應
同樣我在這方面的知識是有限的,你的幫助是非常讚賞
和有效的iframe來獲得正確的代碼是http://api.myurl.com/i=MYUSERNAME&v=UNIX TIMESTAMP + 2 HOURS&s=MY VALID SIGNATURE
PDF文檔
試想一下,我們需要計算簽名爲後續荷蘭國際集團URI:
http://framed.incloode.com/index.php?i=TEST&arg1=val1&arg2=val2&t=123
來計算簽名的方法如下:
- 通過的參數和值的完整列表去,
- 附加這些成一個長字符串HTML safestring,像一個正常的GET請求, 對於上述URI這個長字符串將最終看起來像這樣: I = TEST & ARG1 = VAL1 & ARG2 = val2的& T = 123
- 要指定該鏈接應該有效時,必須添加有效性。 有效性是UNIX時間戳 - 對於2小時的有效性,值time()+ 7200應該被傳遞。這個有效性(參數和值)也必須附加到要簽名的字符串。 對於上面的URI,現在看起來像這樣: i = TEST&arg1 = val1&arg2 = val2&t = 123 & v = 1444567890 初始URI中的請求應該由此列表替換。 I = TEST&ARG1 = VAL1&ARG2 = val2的&T = 123&V = 1444567890
- 的「INCLOODE_API_SECRET」您有:
- 上述收集串然後從HTML解碼(htmlspecialchars_decode()),所以一個是字符串看起來像這樣結束了一直與必須被附加到這個串供給: I = TEST&ARG1 = VAL1&ARG2 = val2的&T = 123&v = 1444567890 ** INCLOODE_API_SECRET **
- 然後,finallytheSHA1checksumofthatstringmustbegenerated.Then,ITIS附加到在步驟中檢索到的參數/值列表(3) 。 這可能會看起來像這樣: http://framed.incloode.com?I = TEST & ARG1 = VAL1 & ARG2 = VAL2 & T = 123 & V = 1444567890 & S = abcdef
我堅決從發送氣餒在URL中籤名,**特別是如果你不使用SSL。** – 2011-05-18 13:37:18