筆者在這一章節,進行sign及取得iv的實作
首先由Sign開始,在[Day4] API開發規格書中有提到Sign的產生方式。
def get_message_hash(data):
sorted_key_list = sorted(data.keys())
first = True
result = ""
for key in sorted_key_list:
if first:
temp = key + "=" + data[key]
first = False
else:
temp = "&" + key + "=" + data[key]
result += temp
return result
def get_sign(data, nonce, hash_id):
hash_value = data + nonce + hash_id
return hashlib.sha256(hash_value.encode("utf-8")).hexdigest().upper()
get_message_hash首先先將dict的key值排序後,一個一個的放入result中,get_sign則是先將三個字串合在一起後,使用hashlib進行sha256完以Hex的形式作為output最後轉成大寫。
接下來則是取的iv的部分,取得iv值需要先將nonce值做sha256後取得右邊16碼流程如下圖
實作方式如下
def get_iv(nonce):
sha_nonce_value = hashlib.sha256(nonce.encode("utf-8")).hexdigest().upper()
return sha_nonce_value[-16:-1]
以上就是本節的內容