1
我目前正在使用基於表達式(if語句)返回True
或False
的驗證函數。頭是base64解碼,然後json.loads
用於將其轉換爲字典。這裏是方法:函數返回True時返回false。編碼問題?
@staticmethod
def verify(rel):
if not('hello' in rel and rel['hello'] is 'blah' and 'alg' in rel and rel['alg'] is 'HS256'):
return False
return True
如果參數是基地64解碼並轉換爲字典,檢查只會失敗。爲什麼?任何幫助,將不勝感激。
編輯:根據要求,這裏是我怎麼稱呼該方法。 Python的3.5.2
p = {'hello': 'blah', 'alg': 'HS256'}
f = urlsafe_b64encode(json.dumps(p).encode('utf-8'))
h = json.loads(str(urlsafe_b64decode(f))[2:-1], 'utf-8')
print(verify(h))
我認爲我們需要更多的上下文。這個函數的調用是什麼樣的?數據被傳遞給它? – sdsmith