国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

接口安全--http數(shù)字簽名

2019-11-08 03:20:28
字體:
供稿:網(wǎng)友

為了保證http請求數(shù)據(jù)的安全性和防篡改性。我們通常要對請求參數(shù)進(jìn)行一些加密。 加密規(guī)則可以根據(jù)雙方接口協(xié)商定義。這里舉一個(gè)常用的加密協(xié)議例子。

1. sign加密協(xié)議

接口協(xié)議中通常會(huì)提供一個(gè) appKey作為唯一的標(biāo)識(shí)。 appSecret作為接入密鑰。 例如:appkey=hh appSecret=39ertfefdsg406c7c36592d42022aaecc 請求路徑 http://www.example.com/login 請求參數(shù) appKey hh 合作方平臺(tái)標(biāo)識(shí) username 用戶名 passWord 密碼 time Unix時(shí)間戳(10位) sign 簽名串

2. 加密要求

將篩選的參數(shù)按照第一個(gè)字符的鍵值A(chǔ)SCII碼遞增排序(字母升序排序),如果遇到相同字符則按照第二個(gè)字符的鍵值A(chǔ)SCII碼遞增排序,以此類推。 將排序后的參數(shù)與其對應(yīng)值,組合成“參數(shù)=參數(shù)值”的格式,并且把這些參數(shù)用&字符連接起來,此時(shí)生成的字符串為待簽名字符串 生成簽名 sign = md5(待簽名字符串) 示例 例如: sign = md5(待簽串) 參數(shù)表為: appKey=hs, username=lzl, password=88fsdfgsff8fd9ssg99 time=1432432234 待簽名字符串為(取排序后的結(jié)果,這里key不參與排序): appKey=hh&password=HG20170113140431206&time=1423212323&key=密鑰

3. 處理流程

我們根據(jù)加密要求,把要傳送的字段進(jìn)行排序和MD5加密。將加密后的結(jié)果和傳輸?shù)淖侄我徊⑺瓦^去。 appKey=hh&password=HG20170113140431206&time=1423212323&key=密鑰&sign=簽名串。 驗(yàn)證方式: 如何保證這條http請求能夠正常相應(yīng)數(shù)據(jù)呢?提供接口方,也是根據(jù)傳輸?shù)淖侄芜M(jìn)行排序和MD5加密。將加密后的結(jié)果verifySign與sign進(jìn)行 比較。如果相同,就說明是一個(gè)正常的請求。反之,就是以非法請求。 代碼示例:

public class MD5Utils { /** * 參數(shù)簽名加密 * @param parameters * @param secret * @return */ public static String signRequest(TreeMap<String,String> parameters,String secret,String charset){ TreeMap<String, String> treeMap = new TreeMap<>(new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }); treeMap = (TreeMap<String, String>) parameters; System.out.
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 易门县| 巩留县| 宜都市| 互助| 临漳县| 永德县| 浙江省| 沭阳县| 府谷县| 纳雍县| 贵阳市| 锦屏县| 大关县| 临泽县| 贵德县| 固原市| 丹东市| 阿鲁科尔沁旗| 通辽市| 包头市| 平邑县| 江山市| 科技| 海晏县| 敖汉旗| 绥宁县| 名山县| 仁怀市| 南川市| 雷州市| 米林县| 钟祥市| 天祝| 水城县| 寿阳县| 宜宾市| 堆龙德庆县| 延庆县| 静海县| 车致| 松原市|