回覆列表
  • 1 # 墨莫134881387

    1.1.1 驗證碼加密介面中的驗證碼引數,均需要透過DES + BASE64加密,1.1.2 報文簽名通票平臺接入端分配一個cp_code和csecret,雙方均採用如下規則對報文進行簽名:l 第一步:簽名源串構造規則:將請求引數按照如下規則組織“a=x&b=y&c=z&……”,每一個引數按引數名的自然數序排列。(按字典序排列)l 第二步:使用HMAC-SHA1加密演算法,將Step1中的到的源串以及實現分配的金鑰(csecret )進行加密;l 第三步:將Step2中得到的加密字串進行Base64編碼。簽名金鑰(secret):abcdefghijklmnopqrstuvwx/*** 返回簽名之後的JSON物件** @param json原JSON物件* @param secret金鑰* @return* @throws Exception*/publicstatic String doSign(JSONObjectjson,String secret) throws Exception {String baseStr = "";for (Object key : newTreeSet(json.keySet())) {baseStr += ("&" + key + "=" + json.get(key));}SecretKeySpec key = newSecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA1");Mac mac = Mac.getInstance("HmacSHA1");mac.init(key);byte[] bytes = mac.doFinal(baseStr.substring(1).getBytes("UTF-8"));json.put("signature", new String(Base64.encodeBase64(bytes)));return json.toString();}

  • 中秋節和大豐收的關聯?
  • 今晚國安對戰華夏第二個點球是合理判罰嗎?