其次,如果這裏的$_GET可以理解為字典,對於$nonce = $_GET["nonce"],[]中的nonce是屬性,而$nonce是屬性的值的話,那麽我下面寫的應該問題不大。
第三,private function,這個應該是寫在類裏的吧,python裏除非妳通過對方法和屬性的名字進行處理,否則是沒有私有的概念的。
代碼:
import hashlib
def checkSignature(_GET): #如果不傳參的話,也可以用全局變量,但不推薦
signature = _GET["signature"]
timestamp = _GET["timestamp"]
nonce = _GET["nonce"]
token = TOKEN # 這個不清楚是什麽
tmpArr = [token, timestamp, nonce]
tmpArr.sort()
tmpStr = hashlib.sha1(''.join(tmpArr)) # ''.join ,前面是個空字符,不是空白字符,"",引號中間沒有任何字符。
# 這裏有個問題,我對妳原來的php下sha1後的字符串什麽樣不了解。python的sha1處理後會返回壹個sha1對象,如何從這個對象獲得字符串,可以用兩個方法:digest(),hexdigest()。digest我不太了解,hexdigest返回壹個每壹個字符都是16進制字符的字符串。
if tmpStr.hexdigest() == signature:
return ture
else:
return false
最後,註意統壹縮緊方式,only space or only tab.