MD5生成签名结果

来源:互联网 发布:鲍伊猎刀淘宝有卖嘛 编辑:程序博客网 时间:2024/04/27 21:06
 String key="支付生成的key固定值";  


Map<String,String>param =new HashMap<String,String>();

//用来生成签名字段  需要按顺序

  param.put("_input_charset",_input_charset);

  param.put("name",name);

  String sign=md5.sginMD5(param,key);


//定义一个常量类 Config

      public static final String sign_type="MD5";    .....input_charset="UTF-8";

//sgin方法

  public static String sginMD5(Map<String,String> map,String key){

                 String prestr= this.createLinkString(map);//把数组参数 按照 “参数?参数值的模式?”字符拼接成字符

                  String mysin="";

                 IF(Config.sign_type.equals("MD5"){

                 mysign=MD5.sign(prestr,key,Config.input_charset);

                  }

        retrun  mysgin;

}

//createLinkString方法

public static String createLinkString(Map<String,String>params){

                 List<String> keys = new ArrayList<String>(params.keySet());

                 Collections.sort(keys);

                 String prestr = "";

                 for(int i=0;i<keys.size();i++){

                  String key =keys.get(i);

                   String value=params.get(key);

                 if(i ==keys.size() -1){

                   prestr=prestr+key+"="+value;

                  }elsle{

                  prestr =prestr+key +"="+value+"&";

                    }

                  }

          return prestr;

    } 


//sign方法

 public static String sign(String text,String key,String input_charset){

           text=text+key;

     retrun DigestUtils.md5Hex(getContentBytes(text,input_cahrset));//MD5框架里的方法

     }