import java.util.Map;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Arrays;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
class Main {
public static void main(String[] args) {
System.out.println("Hello world! - java.jsrun.net ");
String appSecret = "UEwQd9tSJFdsdL3rTUE2PSkqKWTvbn25";
Map<String, Object> body = new HashMap<>();
body.put("connectorId", "123");
body.put("current", 1);
body.put("size", 8);
String sign = signRequest(body, appSecret);
System.out.println("查看结果:" + sign);
}
public static String signRequest(Map<String, Object> parametersMap, String secretKey) {
String result = "";
if (parametersMap != null) {
ArrayList<String> list = new ArrayList<>();
for (Map.Entry<String, Object> entry : parametersMap.entrySet()) {
String key = entry.getKey();
Object val = entry.getValue();
if (TypeUtils.isSimpleTypeOrString(val)) {
if (!"".equals(val)) {
list.add(key + "=" + val + "&");
}
}
}
String[] arrayToSort = list.toArray(new String[list.size()]);
Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
sb.append(arrayToSort[i]);
}
result = sb.toString();
}
result += secretKey;
result = md5(result);
return result;
}
public static String md5(String input) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(input.getBytes("utf-8"));
byte byteData[] = md.digest();
StringBuilder buffer = new StringBuilder();
for (int index = 0; index < byteData.length; index++) {
buffer.append(Integer.toString((byteData[index] & 0xff) + 0x100, 16).substring(1));
}
return buffer.toString();
} catch (Exception e) {
return null;
}
}
}