sha1签名方法

这里主要简单讲一下sha1签名方法,相信接触微信端开发的人员,在调用微信公众号及小程序的部分接口时需要做sha1签名。

虽然官方中有明显的说明但是还是有部分朋友还是会问到或这感到困惑,这里就详细给出一个demo。cp修改部分参数即可用。

第一步:引入goole.guava架包

1
2
3
4
5
6
7
8
9


<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>


最后一步:封装相关签名方法方便调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25


public String createOcrSign(String nonceTicket, String userId, String orderNo, String nonce, String appId, String version) {
//字典排序
List<String> signParams = new ArrayList<>(
Arrays.asList(version, orderNo, appId, nonce, userId, nonceTicket));
//生成签名
String sign = CommonUtils.computeSign(signParams);
return sign;
}

public static String computeSign(List<String> values) {
if (values == null) {
throw new NullPointerException("values is null");
}
values.removeAll(Collections.singleton(null));// remove null
Collections.sort(values);
StringBuilder sb = new StringBuilder();
for (String s : values) {
sb.append(s);
}
return Hashing.sha1().hashString(sb, Charsets.UTF_8).toString().toUpperCase();
}


———到此结束