Java怎么给WebService加密
发布网友
发布时间:2022-05-01 07:15
我来回答
共2个回答
热心网友
时间:2022-06-25 23:15
http://blog.csdn.net/hulihui/archive/2008/10/01/3006882.aspx看看这个,我也在学
热心网友
时间:2022-06-25 23:16
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();
}