编辑代码

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) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
		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;
        }
    }
}