From ed3bfb7462d44747230437717e8673a5192f833f Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 30 十一月 2020 20:34:51 +0800
Subject: [PATCH] 2020-11-30-2

---
 HDL_ON/DAL/Net/MqttCommon.cs |  196 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 196 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/DAL/Net/MqttCommon.cs b/HDL_ON/DAL/Net/MqttCommon.cs
new file mode 100644
index 0000000..a2d2d5c
--- /dev/null
+++ b/HDL_ON/DAL/Net/MqttCommon.cs
@@ -0,0 +1,196 @@
+锘縰sing System.Collections.Generic;
+using System;
+using System.Text;
+using System.Security.Cryptography;
+
+namespace HDL_ON.DAL.Net
+{
+
+    public class RemoteRequestParameters
+    {
+        public string RequestVersion;
+        public int RequestSource;
+        public string LoginAccessToken;
+        public int RequestProtocolType;
+
+        public int HdlGatewayGatewayType = 0;
+        public bool IsRedirectSelectEmqServer = false;
+        /// <summary>
+        /// 骞冲彴绫诲瀷瀛楃涓�
+        /// </summary>
+        public string PlatformStr;
+        /// <summary>
+        /// 鍙戝竷涓婚璐熻浇
+        /// </summary>
+        public string PublishPayloadJsonStr;
+
+        public string Mac = "";
+        public string GroupName = "";
+    }
+
+    public class MqttRemoteInfo
+    {
+        public List<RemoteMACInfo> pageData;
+
+        public int pageIndex = 0;
+        public int pageSize = 10;
+        public int totalCount = 3;
+        public int totalPages = 1;
+        public bool hasPreviousPage = false;
+        public bool hasNextPage = false;
+    }
+
+    public class MqttInfo
+    {
+        public string connEmqDomainPort;
+        public string connEmqClientId;
+        public string connEmqUserName;
+        public string connEmqPwd;
+
+        public List<RemoteMACInfo> AccountAllGateways;
+
+    }
+
+    public class RemoteMACInfo
+    {
+        public string mac;
+        public string macMark;
+        public string isValid;
+        public string aesKey;
+        public bool isNewBusproGateway;
+        public string groupName;
+        public string projectName;
+        public string userName;
+
+        public string clientId;
+
+        //app鑷畾涔夋暟鎹�
+        public string md5_mac_string;
+        public string LoginAccessToken;
+    }
+
+    namespace Shared.Securitys
+    {
+        public partial class EncryptionService
+        {
+
+            #region 鍔犲瘑
+            /// <summary>
+            /// 鍔犲瘑涓婚涓築ase64
+            /// </summary>
+            /// <param name="pToEncrypt"></param>
+            /// <param name="key"></param>
+            /// <returns></returns>
+            public static string AesEncryptTopic(string pToEncrypt, string key)
+            {
+                if (string.IsNullOrEmpty(pToEncrypt)) return null;
+                if (string.IsNullOrEmpty(key)) return pToEncrypt;
+                //闇�瑕佸姞瀵嗗唴瀹圭殑鏄庢枃娴�
+                Byte[] toEncryptArray = Encoding.UTF8.GetBytes(pToEncrypt);
+
+                //閰嶇疆AES鍔犲瘑Key(瀵嗛挜銆佸悜閲忋�佹ā寮忋�佸~鍏�)
+                RijndaelManaged rm = new RijndaelManaged
+                {
+                    Key = Encoding.UTF8.GetBytes(key),
+                    IV = Encoding.UTF8.GetBytes(key),
+                    Mode = CipherMode.CBC,
+                    Padding = PaddingMode.PKCS7
+                };
+
+                //鍒涘缓AES鍔犲瘑鍣ㄥ璞�
+                ICryptoTransform cTransform = rm.CreateEncryptor();
+
+                //浣跨敤AES灏嗘槑鏂囨祦杞垚瀵嗘枃瀛楄妭鏁扮粍
+                Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+
+                //灏咥ES鐢熸垚鐨勫瘑鏂囧瓧鑺傛暟缁勮浆鎴怋ase64瀛楃涓�
+                return Convert.ToBase64String(resultArray, 0, resultArray.Length);
+            }
+
+
+            /// <summary>
+            /// 鍔犲瘑璐熻浇涓轰簩杩涘埗娴�
+            /// </summary>
+            /// <param name="toEncryptArray"></param>
+            /// <param name="key"></param>
+            /// <returns></returns>
+            public static byte[] AesEncryptPayload(byte[] toEncryptArray, string key)
+            {
+                if (string.IsNullOrEmpty(key)) return toEncryptArray;
+                //閰嶇疆AES鍔犲瘑Key(瀵嗛挜銆佸悜閲忋�佹ā寮忋�佸~鍏�)
+                var rm = new RijndaelManaged
+                {
+                    Key = Encoding.UTF8.GetBytes(key),
+                    IV = Encoding.UTF8.GetBytes(key),
+                    Mode = CipherMode.CBC,
+                    Padding = PaddingMode.PKCS7
+                };
+
+                //鍒涘缓AES鍔犲瘑鍣ㄥ璞�
+                var cTransform = rm.CreateEncryptor();
+                //浣跨敤AES灏嗘槑鏂囨祦杞垚瀵嗘枃瀛楄妭鏁扮粍
+                return cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+            }
+            #endregion
+
+
+            #region 瑙e瘑
+            /// <summary>
+            /// 瑙e瘑涓婚鏁版嵁
+            /// </summary>
+            /// <param name="pToDecrypt"></param>
+            /// <param name="key"></param>
+            /// <returns></returns>
+            public static string AesDecryptTopic(string pToDecrypt, string key)
+            {
+                //AES瀵嗘枃Base64杞垚瀛楃涓�
+                Byte[] toEncryptArray = Convert.FromBase64String(pToDecrypt);
+
+                //閰嶇疆AES鍔犲瘑Key(瀵嗛挜銆佸悜閲忋�佹ā寮忋�佸~鍏�)
+                RijndaelManaged rm = new RijndaelManaged
+                {
+                    Key = Encoding.UTF8.GetBytes(key),
+                    IV = Encoding.UTF8.GetBytes(key),
+                    Mode = CipherMode.CBC,
+                    Padding = PaddingMode.PKCS7
+                };
+
+                //鍒涘缓AES瑙e瘑鍣ㄥ璞�
+                ICryptoTransform cTransform = rm.CreateDecryptor();
+
+                //浣跨敤AES灏嗗瘑鏂囨祦杞垚鏄庢枃鐨勫瓧鑺傛暟缁�
+                Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+
+                //杞垚瀛楃涓�
+                return Encoding.UTF8.GetString(resultArray);
+            }
+
+            /// <summary>
+            /// 閲囩敤Aes瑙e瘑璐熻浇鏁版嵁
+            /// </summary>
+            /// <param name="toEncryptArray"></param>
+            /// <param name="key"></param>
+            /// <returns></returns>
+            public static byte[] AesDecryptPayload(byte[] toEncryptArray, string key)
+            {
+                //閰嶇疆AES鍔犲瘑Key(瀵嗛挜銆佸悜閲忋�佹ā寮忋�佸~鍏�)
+                var rm = new RijndaelManaged
+                {
+                    Key = Encoding.UTF8.GetBytes(key),
+                    IV = Encoding.UTF8.GetBytes(key),
+                    Mode = CipherMode.CBC,
+                    Padding = PaddingMode.PKCS7
+                };
+
+                //鍒涘缓AES瑙e瘑鍣ㄥ璞�
+                var cTransform = rm.CreateDecryptor();
+
+                //浣跨敤AES灏嗗瘑鏂囨祦杞垚鏄庢枃鐨勫瓧鑺傛暟缁�
+                return cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+            }
+            #endregion
+
+
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0