為防止第三方冒充客戶端請求服務器,可以采用參數簽名驗證的方法:
? ? 將請求參數中的各個鍵值對按照key的字符串順序升序排列(大小寫敏感),把key和value拼成一串之后最后加上密鑰,組成key1value1key2value2PRIVATEKEY的格式,轉成utf-8編碼的字節序列后計算md5,作為請求的簽名。計算出來的簽名串應當全為小寫形式。如果某個參數的值為空,則此參數不參與簽名。
?
例如,C為客戶端,S為服務器端。C向S發出請求
? ? C傳的參數有A=a,B=b,C=c,除此之外,還需要傳遞一個簽名摘要參數sign。
? ? ? ? sign = md5(AaBbCc+key) ? ?其中+表示字符串連接,md5算法,可以替換為一些更為復雜的簽名算法,其中key是雙方商定好的私鑰
?
服務器端用同樣的方法來進行簽名驗證
?
在此過程中注意編碼問題,服務器端一定要先進行簽名驗證,然后再轉碼。