Pu Zhibing
4 天以前 4c4dc127cdc9c41f2bfb3c138108529856e031b8
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.supersavedriving.user.modular.system.util;
 
import cn.hutool.crypto.digest.MD5;
import java.util.Map;
import java.util.TreeMap;
 
public class StrUtil {
 
    public static Boolean verify(Map<String,Object> map, String key){
        String signStr = getSignStr(map);
        signStr = signStr + "&key=" + key;
        String sign = MD5.create().digestHex(signStr);
 
        if(sign.equalsIgnoreCase(String.valueOf(map.get("sign")))){
            return Boolean.TRUE;
        }
        return Boolean.FALSE;
    }
 
    public static String getSignStr(Map<String,Object> map){
        StringBuffer str = new StringBuffer();
        TreeMap<String, Object> treeMap = new TreeMap<>(map);
        for (Map.Entry<String,Object> entry : treeMap.entrySet()){
            if (entry.getValue()==null){
                continue;
            }
            if (entry.getValue() instanceof String && String.valueOf(entry.getValue()).equals("")){
                continue;
            }
            if (entry.getKey().equals("sign")){
                continue;
            }
            if (str.length()!=0){
                str.append("&");
            }
            str.append(entry.getKey()).append("=").append(entry.getValue());
        }
        return String.valueOf(str);
    }
 
}