import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
public class test {
public static void main(String[] args) {
TreeMap<String, String> paramsMap = new TreeMap<String, String>();
paramsMap.put("aa", "aaaa");
paramsMap.put("ac", "aa123aa");
paramsMap.put("ab", "aaa456a");
paramsMap.put("ad", "aa789aa");
//计算签名
Set<Map.Entry<String, String>> entrySet = paramsMap.entrySet();
System.out.println("entrySet>>>"+entrySet.toString());
List<String> list = new LinkedList<>();
for(Map.Entry<String, String> entry:entrySet){
list.add(StringUtils.join(Arrays.asList("&",entry.getKey(),"=",entry.getValue()),""));
}
String params = StringUtils.join(list,"");
params = params.substring(1);
System.out.println("params>>>"+params);
String sign = DigestUtils.md5Hex(params);
System.out.println("sign>>>"+sign);
}
}
运行结果
entrySet>>>[aa=aaaa, ab=aaa456a, ac=aa123aa, ad=aa789aa]
params>>>aa=aaaa&ab=aaa456a&ac=aa123aa&ad=aa789aa
sign>>>5fb26dcc08b9e136e3e95d48434d344c