REST签名认证
139 開放平臺與應用之間以REST協議進行通訊,為了保證通信的安全性,開放平臺加入簽名認證機制。應用一旦創建,系統生成唯一并且不公開的secretkey,只有應用的擁有者和開放平臺知道。因此,當應用請求開放平臺時,把請求的參數以及開放平臺分配的secretkey進行MD5 HASH生成sig,從而保證通信的安全。?
簽名生成規則
- 把所有的請求參數按照字典順序進行排序;注意:請把參數的連接符'&'去掉;例如:c=3&a=1&b=2排序后為a=1b=2c=3;
- 把排序后的字符串后面追加開放平臺分配的secretkey;例如:secretkey=diwierwer2o45q4wer,則處理的串為:a=1b=2c=3diwierwer2o45q4wer;
- 把附加secretkey的串進行md5運算,把計算后的值作為sig參數發送請求給開放平臺服務器,例如:c=3&a=1&b=2&sig=3a74f18d8c2a8f25fd145fcb02dab671;
說明:計算sig時,不需要對任何參數進行urlencode,并且都是utf-8編碼;但是,當發送請求時需要進行urlencode。?
應用示例
下面以請求users.getInfo方法作為例子,詳細說明一下請求串的加密規則:
- 根據方法的參數列表,以POST方式向139 REST開放平臺服務器發送請求的詳細參數信息:
- 經過參數排序,并且附加secretkey以后為(假設secretkey:abcdefghi323423):
- 把上面生成的排序串進行md5加密:
- 把生成的加密串,作為sig參數以POST方式發送給開放平臺服務器:
總結
- 上一篇: WCF4.0 –- RESTful WC
- 下一篇: HMAC-MD5算法原理及实现