From ebaaa34038ebda73630c9ab82465c5f76692b5c2 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期二, 05 十二月 2023 00:01:48 +0800
Subject: [PATCH] 提交粮情协议2,完成

---
 src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 76 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
index c43f29e..13c0715 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
@@ -2,11 +2,9 @@
 
 import com.alibaba.fastjson2.JSONObject;
 import com.fzzy.api.data.PushProtocol;
-import com.fzzy.api.utils.MyMD5Util;
-import com.fzzy.api.utils.RSAUtils;
-import com.fzzy.api.utils.RedisConst;
-import com.fzzy.api.utils.RedisUtil;
+import com.fzzy.api.utils.*;
 import com.fzzy.api.view.repository.ApiLogRep;
+import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.service.GatewayConfService;
 import com.fzzy.gateway.util.GatewayHttpUtil;
 import com.fzzy.gateway.api.GatewayRemoteService;
@@ -20,8 +18,11 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.io.UnsupportedEncodingException;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeMap;
 
 
 @Slf4j
@@ -61,7 +62,7 @@
 
             CloudResp respKey = JSONObject.parseObject(jsonStr, CloudResp.class);
 
-            if (ScConstant.CODE_200 == respKey.getCode()) {
+            if (BaseResp.CODE_200 == respKey.getCode()) {
                 JSONObject object = respKey.getData();
                 String pubKey = (String) object.get("pubKey");
                 String priKey = (String) object.get("priKey");
@@ -79,7 +80,7 @@
             log.info("---鑾峰彇AccessToken鎺ュ彛-杩斿洖---{}", jsonStr);
             CloudResp respToken = JSONObject.parseObject(jsonStr, CloudResp.class);
 
-            if (ScConstant.CODE_200 == respToken.getCode()) {
+            if (BaseResp.CODE_200 == respToken.getCode()) {
                 JSONObject object = respKey.getData();
                 if (null != object) {
                     String token = (String) object.get("token");
@@ -119,7 +120,7 @@
             String url = gatewayConf.getApiUrl() + "reserver/api/iot/equipment/heartbeat";
 
             String jsonStr = GatewayHttpUtil.doGet(url, params);
-            log.info("---缃戝叧蹇冭烦鎺ュ彛-杩斿洖---{}", jsonStr);
+           // log.info("---缃戝叧蹇冭烦鎺ュ彛-杩斿洖---{}", jsonStr);
 
         } catch (Exception e) {
             log.error("------缃戝叧蹇冭烦鎺ュ彛--鎵ц澶辫触-----{}", e);
@@ -164,6 +165,28 @@
     public String getSign(Map<String, String> parames, String priKey) {
         //鍙傛暟鎷兼帴
         String msg = "";
+        parames = sortMapKey(parames);
+        for (Map.Entry<String, String> param : parames.entrySet()) {
+            msg += param.getKey() + "=" + param.getValue() + "&";
+        }
+        msg = msg.substring(0, msg.length() - 1);
+
+        log.debug("------寰呭姞瀵嗕俊鎭�-----{}", msg);
+
+        //MD5鍔犲瘑
+        String md5sign = MyMD5Util.getMD5(msg);
+        log.debug("------md5鍔犲瘑-----{}", md5sign);
+
+        //RSA鍔犲瘑
+        String result = GatewayRSAUtils.encryptByPrivate(md5sign, priKey);
+        log.debug("------RSA鍔犲瘑-----{}", result);
+
+        return result;
+    }
+    public static String getSign2(Map<String, String> parames, String priKey) {
+        //鍙傛暟鎷兼帴
+        String msg = "";
+        parames = sortMapKey(parames);
         for (Map.Entry<String, String> param : parames.entrySet()) {
             msg += param.getKey() + "=" + param.getValue() + "&";
         }
@@ -182,7 +205,6 @@
         return result;
     }
 
-
     /**
      * @param kqdm
      * @return
@@ -197,5 +219,51 @@
 
     }
 
+    private static Map<String, String> sortMapKey(Map<String, String> map){
+        if(map == null || map.isEmpty()){
+            return  null;
+        }
+
+
+        Map<String, String> sortMap = new TreeMap<>(new Comparator<String>() {
+            @Override
+            public int compare(String o1, String o2) {
+                return o1.compareTo(o2);
+            }
+        });
+        sortMap.putAll(map);
+        return sortMap;
+    }
+
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+        //缃戝叧蹇冭烦鎺ュ彛
+//        Map<String, String> params = new HashMap<>();
+//        //params.put("token", "");
+//        params.put("gatewayId", "6e3d92ff71b911eea5e50250f2000002");
+//        params.put("gatewayIp", "123");
+//        params.put("gatewayMac", "123");
+//        params.put("gatewayCPU","123");
+//        params.put("gatewayMem", "123");
+//        params.put("gatewayHardDisk", "123");
+//        params.put("timestamp", "2023-10-31 12:12:12");
+//        String sign = getSign2(params,"MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEA0lg35sJGRyUFEDzt\np9pWvc0JD+0+SmiZIgMbUaEM5gqBsvUJ9LnzB0rpMTbuqAxAFbUH1Nw4qXdJVnKS\nRYfPgQIDAQABAkBPkxIq2Uou9gFRYEtkGcSA70VDYjQTgDiWVmiKXAv+JkEJmOno\\nMrHYQGAiP0q4xW66F+CLNCrGPVJns2ywMxwxAiEA/vyNX5M0/t+RHAxpMp484i9T\nb5Qf+HvepOV3c0UGZx0CIQDTLj4+qgoXGOLCM9/dzVJZ04VIjK6u546z22hXFWgI\ntQIhAMWFP8JMlx3kc1UF7Cuw1jrkLD7fwJBM7CBSPODHFHmlAiEAhv4Hcf02B/+z\nbBrG3rzSCHOKvo6XV1zTvqrhLtGTOAUCIGmoaIDgTuS0ZF71+c9mYvPVNL0T02GQ\nE8Y3ExreQphx");
+//        params.put("sign", sign);
+//
+//        System.out.println(sign);
+        byte[] encryptedData = GatewayRSAUtils.decryptBase64("yx7jNj9DGS7AkH/sXo5IrwaGNCSUnAZFmjXwWovMBfvYGVQur1RELXUu4fqIMZZ/ck6CAA3ESOJCS+aCD0aVdA==");
+        StringBuilder hexString = new StringBuilder();
+        for (byte b : encryptedData) {
+            String hex = Integer.toHexString(0xFF & b);
+            if (hex.length() == 1) {
+                hexString.append('0');
+            }
+            hexString.append(hex);
+        }
+        String hexStringResult = hexString.toString();
+        System.out.println(hexStringResult);
+        System.out.println(BytesUtil.bytesToString(GatewayRSAUtils.decryptBase64("mgtJOOn5iZBvmQI3hzvaw2J4BiZUcXhLTsgLk8++Ig2iIZcPaky7V+ylkA+BAYxIBS5ovHXjRo4w26TTEq9k7Q==")));
+
+    }
 
 }

--
Gitblit v1.9.3