2个回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
接口中的验证码参数,均需要通过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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询