• 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();//字母转成大写
    复制代码
     
     
     
    好文要顶 关注我 
  • 相关阅读:
    fastadmin的数据限制什么意思?具体是怎么配置的?
    jQuery上传剪切图片的原理和代码
    dedecms模板明明存在,还是报错:说模板不存在
    数据库基本信息查询
    数据库 --- 基础知识 1
    代码块分享
    并发编程知识内容汇总
    网络编程 与 并发编程 汇总
    并发编程 --- 线程补充2
    并发编程 --- 线程补充
  • 原文地址:https://www.cnblogs.com/Alex80/p/11256801.html
Copyright © 2020-2023  润新知