From 5174e95a428876018ce3372f3dbc24b2861ea472 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 20 十一月 2019 16:11:54 +0800
Subject: [PATCH] 11.20

---
 ZigbeeApp/Shared/Phone/ZigBee/Common/SecuritySet.cs |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/SecuritySet.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/SecuritySet.cs
old mode 100755
new mode 100644
index e051892..12fed74
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/SecuritySet.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/SecuritySet.cs
@@ -44,6 +44,68 @@
             return Convert.ToBase64String(resultArray, 0, resultArray.Length);
         }
 
+        // <summary>
+        /// Aes鍔犲瘑鏁版嵁
+        /// 閲囩敤128浣嶏紙16瀛楄妭锛夊垎缁勫姞瀵嗗拰瑙e瘑鏁版嵁锛屽姞瀵嗘ā寮忎负CBC锛屽亸绉婚噺锛坕v锛夊拰瀵嗛挜涓�鑷达紝濉厖妯″紡閲囩敤pkcs5鎴杙kcs7锛屽姞瀵嗙粨鏋滆緭鍑篵ase64缂栫爜銆�
+        /// </summary>
+        /// <returns>The encrypt.</returns>
+        /// <param name="bytes">P to encrypt.</param>
+        /// <param name="key">Key.</param>
+        public static byte []AesEncryptBytes(byte[] bytes, string key)
+        {
+            if (bytes == null)
+                return null;
+
+            //閰嶇疆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(bytes, 0, bytes.Length);
+
+            //灏咥ES鐢熸垚鐨勫瘑鏂囧瓧鑺傛暟缁勮浆鎴怋ase64瀛楃涓�
+            //return Convert.ToBase64String(resultArray, 0, resultArray.Length);
+        }
+
+        /// <summary>
+        /// Aes 瑙e瘑鏁版嵁
+        /// </summary>
+        /// <returns>The decrypt.</returns>
+        /// <param name="pToDecrypt">P to decrypt.</param>
+        /// <param name="key">Key.</param>
+        public static byte []AesDecryptBytes(byte[] bytes, string key)
+        {
+            //AES瀵嗘枃Base64杞垚瀛楃涓�
+            var toEncryptArray = bytes;// Convert.FromBase64String(System.Text.Encoding.UTF8.GetString(bytes));
+
+            //閰嶇疆AES鍔犲瘑Key(瀵嗛挜銆佸悜閲忋�佹ā寮忋�佸~鍏�)
+            var rm = new RijndaelManaged
+            {
+                Key = Encoding.UTF8.GetBytes(key),
+                IV = Encoding.UTF8.GetBytes(key),
+                //Mode = CipherMode.ECB,
+                Mode = CipherMode.CBC,
+                Padding = PaddingMode.PKCS7
+            };
+
+            //鍒涘缓AES瑙e瘑鍣ㄥ璞�
+            var cTransform = rm.CreateDecryptor();
+
+            //浣跨敤AES灏嗗瘑鏂囨祦杞垚鏄庢枃鐨勫瓧鑺傛暟缁�
+            return cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+
+            //杞垚瀛楃涓�
+            //return Encoding.UTF8.GetString(resultArray);
+        }
+
         /// <summary>
         /// Aes 瑙e瘑鏁版嵁
         /// </summary>

--
Gitblit v1.8.0