· 9 years ago · Sep 09, 2016, 09:14 AM
1import javax.xml.bind.DatatypeConverter;
2import java.security.MessageDigest;
3import java.security.NoSuchAlgorithmException;
4
5public class SignGenerator
6{
7
8 public static void main(String a[])
9 {
10 // Demo
11 String client_id = "liuxd";
12 String user_token = "23343we356";
13 String secret_key = "15fc7a0b4f050989554e3c9cadc693fd";
14
15 String sign = getSign(client_id, user_token, secret_key);
16
17 System.out.println(sign);
18 }
19
20 private static String getSign(String client_id, String user_token, String secret_key)
21 {
22 String str = client_id + user_token;
23
24 byte[] message = str.getBytes();
25
26 String tmp1 = DatatypeConverter.printBase64Binary(message);
27 String tmp2 = tmp1.substring(0, tmp1.length() - 2);
28 String tmp3 = tmp2 + secret_key;
29 StringBuffer tmp4 = new StringBuffer(tmp3);
30 StringBuffer tmp5 = tmp4.reverse();
31 String tmp6 = tmp5.toString();
32 String tmp7 = MD5(tmp6);
33
34 return tmp7;
35 }
36
37 private static String MD5(String sourceStr)
38 {
39 String result = "";
40
41 try {
42 MessageDigest md = MessageDigest.getInstance("MD5");
43 md.update(sourceStr.getBytes());
44 byte b[] = md.digest();
45 int i;
46 StringBuffer buf = new StringBuffer("");
47
48 for (int offset = 0; offset < b.length; offset++) {
49 i = b[offset];
50
51 if (i < 0) {
52 i += 256;
53 }
54
55 if (i < 16) {
56 buf.append("0");
57 }
58
59 buf.append(Integer.toHexString(i));
60 }
61
62 result = buf.toString();
63 } catch (NoSuchAlgorithmException e) {
64 System.out.println(e);
65 }
66
67 return result;
68 }
69}