通用签名生成工具类

说明:在实际开发中,经常会用到一些第三方接口需要去对参数按顺序进行拼接生成签名进行鉴权校验,这里我把公共的代码贴出来,以供大家参考。

 

    public static String generateSignature(Map data) throws Exception {Set keySet = data.keySet();String[] keyArray = keySet.toArray(new String[keySet.size()]);Arrays.sort(keyArray);StringBuilder sb = new StringBuilder();for (int i = 0; i < keyArray.length; i++) {// 参数值为空,则不参与签名if (data.get(keyArray[i]).trim().length() <= 0 || keyArray[i].equals("sign")) {continue;}sb.append(keyArray[i]).append("=").append(data.get(keyArray[i]).trim());if (i < keyArray.length - 1) {sb.append("&");}}return MD5(sb.toString());}/*** 生成 MD5** @param data 待处理数据* @return MD5结果*/public static String MD5(String data) throws Exception {MessageDigest md = MessageDigest.getInstance("MD5");byte[] array = md.digest(data.getBytes("UTF-8"));StringBuilder sb = new StringBuilder();for (byte item : array) {sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));}return sb.toString().toUpperCase();}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部