xf 2 tahun lalu
induk
melakukan
729ad12da4

+ 59 - 2
src/Hotline.Api/Controllers/TestController.cs

@@ -1,4 +1,6 @@
-using Dapr;
+using System.Security.Cryptography;
+using System.Text;
+using Dapr;
 using Hotline.Application.TimeLimits;
 using Hotline.CallCenter.BlackLists;
 using Hotline.CallCenter.Devices;
@@ -20,6 +22,7 @@ using Microsoft.Extensions.Options;
 using NewRock.Sdk;
 using NewRock.Sdk.Security;
 using SqlSugar;
+using XC.RSAUtil;
 using XF.Domain.Authentications;
 using XF.Domain.Cache;
 using XF.Domain.Entities;
@@ -30,6 +33,7 @@ namespace Hotline.Api.Controllers;
 /// <summary>
 /// 
 /// </summary>
+[AllowAnonymous]
 public class TestController : BaseController
 {
     private readonly ILogger<TestController> _logger;
@@ -97,7 +101,7 @@ public class TestController : BaseController
         _mediator = mediator;
         _timeLimitApplication = timeLimitApplication;
     }
-    
+
     [HttpGet("pgsql")]
     public async Task<string> Pgsql()
     {
@@ -201,4 +205,57 @@ public class TestController : BaseController
         _logger.LogDebug("receive dapr event, params: {0}", data);
         return Task.FromResult(data);
     }
+
+    [HttpGet("rsa")]
+    public async Task Rsa()
+    {
+        var keyList = RsaKeyGenerator.Pkcs1Key(2048, true);
+        var privateKey = keyList[0];
+        var publicKey = keyList[1];
+    }
+
+    [HttpPost("dersa")]
+    public async Task DeRsa([FromBody] string str)
+    {
+        var pubKey = @"-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgw+/x6IQPkH0A4eoF63j
+kLThsOXWyNBdcL9LATGy/G1yTHOr1RyKJB//iNug+V8DIoIHuFTlhgLHDbSqxvRW
+MONxIIF289riS6bDI4Ox/pFmOfmElFRk0lKGihaTE2Aefd6g/N+RfLLaHWztY+/v
+oVeDTiOIw9y3tokIxjKwuJ/mQ66MkKh78AqQjjSD/3jcBP8ZhMyCJOK9XQcqvhD6
+WBFWkxlAqKOWggDU7YohfrbNkg3bd0oGE6zCE2EHhkcQbzGCh3lu1zf4TfKMXD+P
+Prr5JWDNYQTXFQklqgae+Puge7xxZGYRoi5YpIUnkQGm6zpPxhIOdxlz+Yb5geSJ
+UQIDAQAB
+-----END PUBLIC KEY-----";
+        var priKey = @"-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAgw+/x6IQPkH0A4eoF63jkLThsOXWyNBdcL9LATGy/G1yTHOr
+1RyKJB//iNug+V8DIoIHuFTlhgLHDbSqxvRWMONxIIF289riS6bDI4Ox/pFmOfmE
+lFRk0lKGihaTE2Aefd6g/N+RfLLaHWztY+/voVeDTiOIw9y3tokIxjKwuJ/mQ66M
+kKh78AqQjjSD/3jcBP8ZhMyCJOK9XQcqvhD6WBFWkxlAqKOWggDU7YohfrbNkg3b
+d0oGE6zCE2EHhkcQbzGCh3lu1zf4TfKMXD+PPrr5JWDNYQTXFQklqgae+Puge7xx
+ZGYRoi5YpIUnkQGm6zpPxhIOdxlz+Yb5geSJUQIDAQABAoIBAAe+312BKUbsp0BV
+fOyCqoTLqTJHBcBneWY86pte9bjaZQYPU1PsdF452o8a38gXwpErBcwcjwCyWv48
+iQKUv8qdiSWGe+Jh3hGM1lKGfsyl3i3wnlJqgcI2U1zc2a4BoREHnmm4yBnfs2lI
+HegpRCG7u3cGPZfJtxJyxdHPfsc3wk8sXt+Byqkuym87l0a8wEF7b33f2hP2R7m/
+37qYvTaGX3yN4s1rssQ3wBEfHEsesQmrQrEkRIUnWfgpkH3FdR5T1V4USC6GhM6x
+sIxqwBBYLL2LhVcNEifegqHtLZOw0VfUfpvoKnH5omSjUP5X+c8dmY9KPoKGpYFT
+l09fiRMCgYEAwSAmJr8G/xOCPtkRZ9qpxOwAeqA9iEhB3ViIydESrYMZGUaIKAWV
+ofOuDIdaMgW/2hyQtJasAnlX87Za7iODcBAMMAPSNiLEXk9nHWO+Xw/oMakgS5Dg
+uE2J02Bn4KFTCGALtfo70A40kkikkR2UdD4RG6j+DgI2JxxrCgaKiIMCgYEArbrv
+cvJs62LlvOFdVCY3mWEJkoBbStHGq2GdtZ5Rx9oNqiy3j/xT7Wav061OPCaC2rcd
+ALEH7AA3JJtAMr6QRv3HYyd2NIrlqS6pn4tInIpqlarrnVkkOk0WhsWVkScQJyx6
+eLKQ24zEF3wHslrRpHcclCWjtQ52TmWOuUvy9psCgYAWw6BbntbHSFho6hNIJ5kt
+Uhg4XB0ErGe/HIl7KH7IHxTdStgPx6C8p0mTxnyWOuFDZ2yTLNN3sy/v1UXgniUH
+F40oN7sWkICPEVL5PuGYuPpIqEPbRGeIsfMWDF4SN1HfQdr/h1B3lMUTnSZwyIjQ
+LuS7Wu8fXZlegNYJJ3462wKBgE5TSF9vktGw/djhVj15GXoKONGXExGxcDuWQA9A
++Kf81EpT7NJ6tbADquPpb6tIxZgsFGRabDLnifT0FcaLCesnwXwfr3hS4uYaxpjK
+qAsDkLg3nhCLvvyWAsDyVdNiZDL1J6ZBA3Qoi8P2xFWSApB+ryDPs3YOtiH0QZui
+9UBfAoGBAIQ2uv4J7ql++EpNNtLzOhTEpyjWS+qRSZRRXfKN2lm7e7czOsSpKIJx
+Q9PP8NTEmKqdI3WVFYqW/OlOFC6sjiscTOOn9Tc5Mrcn8ocCjAPjkhkCCVRMiJnv
+jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
+-----END RSA PRIVATE KEY-----";
+        var pkcs1 = new RsaPkcs1Util(Encoding.UTF8, pubKey, priKey);
+        //pkcs1.Decrypt(str, RSAEncryptionPadding.OaepSHA256);
+        //pkcs1.Decrypt(str, RSAEncryptionPadding.OaepSHA1);
+        pkcs1.Decrypt(str, RSAEncryptionPadding.Pkcs1);
+    }
 }

+ 1 - 0
src/Hotline.Application/Hotline.Application.csproj

@@ -9,6 +9,7 @@
   <ItemGroup>
     <PackageReference Include="Dapr.AspNetCore" Version="1.9.0" />
     <PackageReference Include="IdentityModel" Version="6.0.0" />
+    <PackageReference Include="XC.RSAUtil" Version="1.3.6" />
     <PackageReference Include="XF.Utility.AppIdentityModel" Version="1.0.3" />
   </ItemGroup>