MD5签名问题

本文介绍了一种处理签名参数的方法,特别是如何处理数组类型的参数,并将其转换为字符串进行MD5加密。提供了具体的Java代码实现,展示了如何组织参数、排序及生成最终的签名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

签名传入的参数中包含数组类型的参数,String[] xy = new String[]{”116.288418”, “39.832535”}; 加密过程中需要转换为字符串Arrays.toString(xy)

 public static Map<String, Object> addCommonParams(Map<String, Object> reqMap,Object object){
        if(object instanceof PXOrderInfoDTO){
            PXOrderInfoDTO vo = (PXOrderInfoDTO)object;
            reqMap.put("imei", vo.getImei());
            reqMap.put("version", vo.getVersion());
            reqMap.put("platform", vo.getPlatform());
            reqMap.put("ch", vo.getCh());
            reqMap.put("app_id", vo.getApp_id());
            reqMap.put("client_id", vo.getClient_id());
            reqMap.put("timestamp", vo.getTimestamp());
            reqMap.put("token", vo.getToken1());
        }else if(object instanceof PXRequestVO){
            PXRequestVO vo = (PXRequestVO)object;
            reqMap.put("imei", vo.getImei());
            reqMap.put("version", vo.getVersion());
            reqMap.put("platform", vo.getPlatform());
            reqMap.put("ch", vo.getCh());
            reqMap.put("app_id", vo.getApp_id());
            reqMap.put("client_id", vo.getClient_id());
            reqMap.put("timestamp", vo.getTimestamp());
            reqMap.put("token", vo.getToken1());
        }
        return reqMap;
    }
    
    /**
     * 验证码验证签名
     * @param paramsMap
     * @return
     */
    public static String sign (Map<String, Object> paramsMap){
        paramsMap.put("clinetSecret", "54e4b395976c872d65ce71216fc0fefb");
        paramsMap.remove("sign");
        List<String> keys = new ArrayList<String>(paramsMap.keySet());
        Collections.sort(keys);
        List<String> keyValueList = new ArrayList<String>();
        for (String key : keys) {
            Object value = paramsMap.get(key);
            if (value != null) {
                keyValueList.add(key + "=" + value);
            }
        }
        String queryString="";
        for(String obj :keyValueList){
            queryString+=obj+"&";
        }
        log.info("加密参数串:"+queryString.substring(0,queryString.length()-1));
        String sign = PxMD5Util.getMD5Str(queryString.substring(0,queryString.length()-1));
        return sign;
    }

 

转载于:https://www.cnblogs.com/yangjiming/p/9400569.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值