From 610782d5127af072b204792f4c9e38911498e61e Mon Sep 17 00:00:00 2001 From: 南骏 池 <chiffly@163.com> Date: 星期五, 25 四月 2025 09:02:19 +0800 Subject: [PATCH] 1.携客云初步demo --- service/QC/OAJyService.cs | 62 ++++++++++++++++++------------ 1 files changed, 37 insertions(+), 25 deletions(-) diff --git a/service/QC/OAJyService.cs b/service/QC/OAJyService.cs index cc9593b..a5191af 100644 --- a/service/QC/OAJyService.cs +++ b/service/QC/OAJyService.cs @@ -11,6 +11,13 @@ using System.Security.Cryptography; using System.Text; using static Azure.Core.HttpHeader; +using System.Security.Cryptography; +using System.Collections.Generic; +using System.Linq; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using Org.BouncyCastle.Crypto.Parameters; +using Org.BouncyCastle.Security; namespace NewPdaSqlServer.service.QC; @@ -23,34 +30,39 @@ // private const string SPK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB"; private const string HOST = "http://192.168.1.149:8099"; - private const string SPK = @"-----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEc -E94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlI -JBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlb -IkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9Hwg -rzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M -9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116L -twIDAQAB ------END PUBLIC KEY-----"; + private const string SPK = @"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApobID/gwmD9OofMG1gEcE94NCMeTYUq1cam/7ADZmxHCVpF143GaHWhqDdY0TTVbcUElsQ71DzAG2j3itWlIJBK5fVGwCo3sPpAvUDdKMh+Uivcp7yxdy/IDRA/PS4JARuEyM4cVJLhIOU2KnSlbIkheeoDkDgfaxu9kKrWnozJLiYraVTVDz9PdRX7fQdP+Zu/xB9txAGw4kvOm9HwgrzaSRdZEhisTJ5yyoNW/dLXtWKXA0cKhKOOIFu12TOrv/It6hl1ShTUuy79Pa51M9Oc2dEfVs1tluNXPWo1uFXQbBaJxdqZEJJlK7iW2uQFIao2O4XFHYThwy2+6116LtwIDAQAB"; public static class RsaHelper { public static string Encrypt(string plainText, string publicKeyPem) { - // 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡 - var rsa = RSA.Create(); - rsa.ImportFromPem(publicKeyPem); // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶 + //// 灏哖EM鏍煎紡鐨勫叕閽ヨ浆鎹负XML鏍煎紡 + //var rsa = RSA.Create(); + //rsa.ImportFromPem(publicKeyPem); // 浣跨敤.NET 5+ 鍐呯疆PEM瑙f瀽鏂规硶 - var parameters = rsa.ExportParameters(false); - string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>"; + //var parameters = rsa.ExportParameters(false); + //string publicKeyXml = $"<RSAKeyValue><Modulus>{Convert.ToBase64String(parameters.Modulus)}</Modulus><Exponent>{Convert.ToBase64String(parameters.Exponent)}</Exponent></RSAKeyValue>"; - using var rsaProvider = new RSACryptoServiceProvider(); - rsaProvider.FromXmlString(publicKeyXml); // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜 + //using var rsaProvider = new RSACryptoServiceProvider(); + //rsaProvider.FromXmlString(publicKeyXml); // 浣跨敤杞崲鍚庣殑XML鏍煎紡鍏挜 - var data = Encoding.UTF8.GetBytes(plainText); - var encrypted = rsaProvider.Encrypt(data, false); - return Convert.ToBase64String(encrypted); + //var data = Encoding.UTF8.GetBytes(plainText); + //var encrypted = rsaProvider.Encrypt(data, false); + //return Convert.ToBase64String(encrypted); + + RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKeyPem)); + string XML = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>", + Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()), + Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned())); + string encryptedContent = string.Empty; + using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) + { + rsa.FromXmlString(XML); + byte[] encryptedData = rsa.Encrypt(Encoding.Default.GetBytes(plainText), false); + encryptedContent = Convert.ToBase64String(encryptedData); + } + return encryptedContent; } } @@ -196,7 +208,7 @@ //} // 鍔犲瘑澶勭悊 - var userId = "FRadmin"; + var userId = "1268"; var encryptedUserId = RsaHelper.Encrypt(userId, SPK); string strToken = GetToken(); @@ -249,13 +261,13 @@ var request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; request.Timeout = 20000; - request.ContentType = "application/json; charset=utf-8"; // 淇敼涓篔SON鏍煎紡 + request.ContentType = "application/x-www-form-urlencoded"; // 淇敼涓篔SON鏍煎紡 // 鏋勫缓璇锋眰澶� - request.Headers.Add("appid", APPID); - request.Headers.Add("token", token); - request.Headers.Add("Content-Type", APPID); - request.Headers.Add("userId", encryptedUserId); + request.Headers.Set("appid", APPID); + request.Headers.Set("token", token); + request.Headers.Set("Content-Type", "application/x-www-form-urlencoded"); + request.Headers.Set("userId", encryptedUserId); // 鍋囪闇�瑕佸姞瀵嗙殑userid浠庡叾浠栧湴鏂硅幏鍙栵紝杩欓噷闇�瑕佽ˉ鍏呰幏鍙栭�昏緫 // 鏋勫缓璇锋眰浣� -- Gitblit v1.9.3