常用签名方式生成sign

现在做系统时经常会有提供接口给第三方系统的情况,为保证安全性做一个简单的生成sign的规则

  1. 参数parameters为需要加入签名的参数
  2. secret为本系统给第三方系统提供的秘钥
public class SignUtil {

    public static String createSign(SortedMap<String, Object> parameters, String secret) {
        StringBuffer sb = new StringBuffer();
        Set es = parameters.entrySet();//所有参与传参的参数按照accsii排序(升序)
        Iterator it = es.iterator();
        while (it.hasNext()) {
            Map.Entry entry = (Map.Entry) it.next();
            String k = (String) entry.getKey();
            Object v = entry.getValue();
            if (null != v && !Constants.EMPTY.equals(v) && !"sign".equals(k)) {
                sb.append(k + "=" + v + "&");
            }
        }
        return EncryptUtil.md5(sb.toString().substring(0, sb.toString().length() - 1), secret).toUpperCase();
    }
}

你可能感兴趣的:(java)