1
helongyang
2025-06-12 25cb7cd50d12f48e93d6cde47420ca3458e9c47a
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs
@@ -23,14 +23,19 @@
                    
                    using HttpClient httpClient = new HttpClient();
                    httpClient.Timeout = new TimeSpan(0, 0, 60);
                    long currentTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
                    string key = $"appkey=1830415116987195392&timestamp={currentTimestamp}";
                    string authorization = "Open " + GetStr(key);
                    //正式
                    string authorization = "AppKey 1830415116987195392";
                    //测试
                    //string authorization = "AppKey 1773317109539201024";
                    headers = new Dictionary<string, string>
                    {
                        { "Appkey", "1830415116987195392" },
                        { "Authorization", authorization },
                        { "site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" }
                        //正式
                        { "Site_tenant_id", "0dc2d164-8a62-417e-8a00-808007464feb" }
                        //测试
                        //{ "Site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" }
                    };
                    if (headers != null)
                    {
@@ -50,37 +55,6 @@
            {
                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
            }
        }
        public static string GetStr(string textToEncrypt)
        {
            string publicKey;
            string privateKey;
            GenerateRSAKeyPair(out publicKey, out privateKey);
            byte[] encryptedBytes = RSAEncrypt(textToEncrypt, publicKey);
            // å¯ä»¥å°†åŠ å¯†åŽçš„å­—èŠ‚æ•°ç»„è½¬æ¢ä¸ºBase64字符串方便后续处理,例如传输等
            string encryptedBase64 = Convert.ToBase64String(encryptedBytes);
            return encryptedBase64;
        }
        public static void GenerateRSAKeyPair(out string publicKey, out string privateKey)
        {
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048))
            {
                publicKey = rsa.ToXmlString(false);
                privateKey = rsa.ToXmlString(true);
            }
        }
        public static byte[] RSAEncrypt(string plainText, string publicKey)
        {
            byte[] encryptedData;
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
            {
                rsa.FromXmlString(publicKey);
                // å°†æ–‡æœ¬è½¬æ¢ä¸ºUTF8编码的字节数组
                byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);
                // ä½¿ç”¨SHA1哈希算法以及Pkcs1填充规则进行加密
                encryptedData = rsa.Encrypt(plainBytes, true);
            }
            return encryptedData;
        }
    }
}