zoukankan      html  css  js  c++  java
  • md5签名加密(用于java 后台调用短信平台接口实现发短信)

    MD5Util 方法

    package com.funcanteen.business.action.pay.util;
    
    import java.security.MessageDigest;
    
    public class MD5Util {
    
        private static String byteArrayToHexString(byte b[]) {
            StringBuffer resultSb = new StringBuffer();
            for (int i = 0; i < b.length; i++)
                resultSb.append(byteToHexString(b[i]));
    
            return resultSb.toString();
        }
    
        private static String byteToHexString(byte b) {
            int n = b;
            if (n < 0)
                n += 256;
            int d1 = n / 16;
            int d2 = n % 16;
            return hexDigits[d1] + hexDigits[d2];
        }
    
        public static String MD5Encode(String origin, String charsetname) {
            String resultString = null;
            try {
                resultString = new String(origin);
                MessageDigest md = MessageDigest.getInstance("MD5");
                if (charsetname == null || "".equals(charsetname))
                    resultString = byteArrayToHexString(md.digest(resultString
                            .getBytes()));
                else
                    resultString = byteArrayToHexString(md.digest(resultString
                            .getBytes(charsetname)));
            } catch (Exception exception) {
            }
            return resultString;
        }
        
        private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    }

    2:签名封装方法

       //设置签名
        public String getSignature(Map<String, String> map){
            StringBuffer sb = new StringBuffer();
            for(Map.Entry<String, String> me :map.entrySet()){
                sb.append(me.getKey()).append("=").append(me.getValue()).append("&");
            }
            sb.append("key=").append("xxxxxxxxxxxxxxxxxxxx");
            return MD5Util.MD5Encode(sb.toString(), null);
        }

    3:调用签名方法

                    //要发送给用户的模板信息
                    TreeMap<String, String> josnMap = new TreeMap<String,String>();
                    josnMap.put("name", stallApply.getAccountName());
                    String jsonData = JSON.toJSONString(josnMap);
                    //封装组装签名
                    Map<String, String> map = new TreeMap<String,String>();
                    String timestamp = System.currentTimeMillis()/1000+"";
                    map.put("json", jsonData);
                    map.put("mobile", stallApply.getMobile());
                    map.put("templateCode", "SMS_74665033");
                    map.put("timestamp",timestamp);
                    String signature = getSignature(map).toUpperCase();//字母转成大写
  • 相关阅读:
    Oracle数据库面试题【转载】
    年龄计算周岁
    丈夫的权力与妻子的职业水平
    JDK 8 and JRE 8 Supported Locales
    一笔画 奇点 偶点
    流水行船问题
    PL/SQL LOOP SAMPLE
    OpenCV——识别各省份地图轮廓
    OpenCV——轮廓面积及长度计算
    树莓派3安装opencv2程序无法运行
  • 原文地址:https://www.cnblogs.com/SHMILYHP/p/7116777.html
Copyright © 2011-2022 走看看