Java 签名算法
以下是生成签名算法,合作伙伴可以直接使用。
public static String sign(List<String> values, String ticket) { //values传ticket外的其他参数if (values == null) {throw new NullPointerException("values is null");}values.removeAll(Collections.singleton(null));// remove nullvalues.add(ticket);java.util.Collections.sort(values);StringBuilder sb = new StringBuilder();for (String s : values) {sb.append(s);}return Hashing.sha1().hashString(sb, Charsets.UTF_8).toString().toUpperCase();}
注意
Hashing 使用的是 com.google.common.hash.Hashing,版本是 guava-18.0。
调用方法
获取 token 和 ticket 后再用 ticket 对数据进行签名,相关代码如下所示:
String accessToken = client.getAccessToken();//http 请求String ticket = client.getTicket(accessToken);//http 请求String sign = SignUtils.sign(data, ticket);