Пример #1
0
        public void GenerateFormatKeyPair_Test()
        {
            var keyPair = RsaUtil.GenerateFormatKeyPair(RSAKeyFormat.PKCS1, 1024);

            Assert.Contains("----", keyPair.PublicKey);
            Assert.Contains("----", keyPair.PrivateKey);
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            // Load AppSettings to AppSetting class
            Configuration.GetSection("AppSettings").Get <AppSettings>();

            // add JwtBearer authentication
            try
            {
                var rsa = new RSACryptoServiceProvider();
                rsa.ImportParameters(RsaUtil.GetRsaParameters(true));
                var secretKey = new RsaSecurityKey(rsa);
                services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(options =>
                {
                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidateIssuer           = false,
                        ValidateAudience         = false,
                        ValidateLifetime         = true,
                        ValidateIssuerSigningKey = true,
                        ValidIssuer      = Constant.Issuer,
                        ValidAudience    = Constant.Audience,
                        IssuerSigningKey = secretKey
                    };
                });
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
        private void resolveAccount(ExchangeAccount account)
        {
            ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;

            ExchangeService service = new ExchangeService((ExchangeVersion)account.EwsVersion)
            {
                Credentials = new WebCredentials(
                    account.Account,
                    RsaUtil.Decrypt(account.Password)
                    ),
            };

            try
            {
                if (!string.IsNullOrWhiteSpace(account.Url))
                {
                    service.Url = new Uri(account.Url);
                }
                else
                {
                    service.AutodiscoverUrl(account.Account, RedirectionUrlValidationCallback);
                }

                var match = service.ResolveName(account.Account);
                if (match.Count == 0)
                {
                    throw new Exception();
                }
            }

            catch (Exception)
            {
                ModelState.AddModelError("Account", Resources.CouldNotBeResolved);
            }
        }
Пример #4
0
        public void GenerateKeyPair_Test()
        {
            var keyPair = RsaUtil.GenerateKeyPair(RSAKeyFormat.PKCS1, 512);

            Assert.NotEmpty(keyPair.PublicKey);
            var rsaEncryptor = new RsaEncryptor(keyPair.PublicKey, keyPair.PrivateKey);
            var d1           = rsaEncryptor.Encrypt("hello");
            var d2           = rsaEncryptor.Decrypt(d1);

            Assert.Equal("hello", d2);

            var sign = rsaEncryptor.SignData("string1");

            Assert.True(rsaEncryptor.VerifyData("string1", sign));


            var rsaParams1 = RsaUtil.ReadPrivateKeyInfo(keyPair.PrivateKey);

            var rsaParams2     = RsaUtil.ReadPrivateKeyInfo(keyPair.PrivateKey);
            var rsaPrivateKey2 = RsaUtil.ExportPrivateKeyPkcs8(rsaParams2);
            var rsaEncryptor2  = new RsaEncryptor();

            rsaEncryptor2.LoadPrivateKey(rsaPrivateKey2);

            var d3 = rsaEncryptor2.Decrypt(d1);

            Assert.Equal("hello", d3);
        }
        private async Task <AzureAccount> AzureAccountRefreshTokenAsync(int accountId)
        {
            AzureAccount az = db.AzureAccounts.Find(accountId);

            if (az != null && string.IsNullOrWhiteSpace(az.AccessToken) || !az.ExpiresOn.HasValue || az.ExpiresOn.Value < DateTime.UtcNow)
            {
                TokenInfo ti = await Token.GetGrantTypePasswordAsync(
                    az.Resource,
                    az.ClientId,
                    az.ClientSecret,
                    az.User,
                    RsaUtil.Decrypt(az.Password),
                    az.TenantId
                    );

                az.RefreshToken = ti.RefreshToken;
                az.AccessToken  = ti.AccessToken;
                az.ExpiresOn    = ti.ExpiresOn;
                az.IdToken      = ti.IdToken;

                db.Entry(az).State = EntityState.Modified;
                db.SaveChanges();
            }

            return(az);
        }
Пример #6
0
        public override Task OnConnectedAsync()
        {
            var keyForUser = RsaUtil.GenerateRsaKey();

            ClientKeys.TryAdd(Context.ConnectionId, keyForUser);

            return(base.OnConnectedAsync());
        }
Пример #7
0
        public async Task Auth(string login, string password)
        {
            var privateKey = ClientKeys[Context.ConnectionId];

            var decryptedText = RsaUtil.Decrypt(password, privateKey.PrivateKey);

            await Clients.Caller.SendAsync("AuthResult", decryptedText);
        }
Пример #8
0
        private async void SendButton_Click(object sender, EventArgs e)
        {
            var login    = LoginTextBox.Text;
            var password = PasswordTextBox.Text;

            var encryptedPassword = RsaUtil.Encrypt(password, _publicKey);

            await _connection.InvokeAsync("Auth", login, encryptedPassword);
        }
Пример #9
0
        public async Task <IActionResult> Login([FromBody] Req <AdminLoginDto> request)
        {
            var rsa = RsaHelper.Instance;

            if (request.CheckSign(rsa.PrivateKey, rsa.RsaModulus, rsa.RsaExponent, out string msg) == false)
            {
                return(Error(msg));
            }
            if (request.DecryptData() == false)
            {
                return(Error("数据错误!"));
            }

            if (CheckSession(SessionSetting.AdminLoginCode, request.Data.Vcode) == false)
            {
                return(Error("验证码错误!"));
            }
            DeleteSession(SessionSetting.AdminLoginCode);

            var admin = await _adminApplication.AdminLogin(request);

            if (admin == null)
            {
                return(Error(request.Message));
            }


            SetSession(SessionSetting.AdminSession, new AdminSessionDto(admin.Id, admin.Name, admin.TrueName, admin.JobNo));
            var setting = await _adminApplication.GetSettingValueByCode("CookieTimes");//cookie 保存时间

            int mins = 0;

            if (setting != null)
            {
                if (int.TryParse(setting.Value, out mins) == false)
                {
                    mins = 180 * 60;
                }
            }
            if (mins < 600)
            {
                mins = 180 * 60;
            }
            string cookie = SetAdminCookieDto(CookieSetting.AdminCookie, CacheHelper.CreateAdminCookieDto(admin, mins));

            await _adminApplication.SetAdminCookie(admin.Id, cookie, request.PasswordString);

            CacheHelper.SetAdminSessionId(admin.Id, cookie, request.PasswordString);


            var rsaKey = RsaUtil.PrivateEncrypt(rsa.PrivateKey, request.PasswordString);

            return(Success(new { RsaKey = rsaKey }));
        }
Пример #10
0
        static void Main(string[] args)
        {
            Console.WriteLine("Begin!");
            //Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            IServiceCollection services = new ServiceCollection();

            services.AddLogging(l =>
            {
                l.AddLog4Net();
                l.AddNLog();
            })
            .AddDotCommon()
            .AddGenericsMemoryCache()
            .AddProtoBuf()
            .AddJson4Net();
            //services.AddTransient<LoggerService>();
            var provider = services.BuildServiceProvider()
                           .ConfigureDotCommon();

            //.ConfigureLog4Net();
            NLog.LogManager.LoadConfiguration("nlog.config");

            //var loggerService = provider.GetService<LoggerService>();
            //loggerService.Write();

            //var jsonSerializer = provider.GetService<IJsonSerializer>();

            // var image = Image.FromFile(@"D:\picture\1.jpg");
            // var newImage = ImageResizer.Zoom(image, new ResizeParameter()
            // {
            //     Mode = ResizeMode.Zoom,
            //     Width = 300
            // });
            // var bytes = ImageUtil.ImageToBytes(newImage);


            //AesEncryptor aes = new AesEncryptor("MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWY=", "MTIzNDU2Nzg5MGFiY2RlZg==");
            //aes.KeySize = 256;
            //var a = aes.Encrypt("hello");
            //Console.WriteLine(a);

            var logger = provider.GetService <ILogger <Program> >();

            logger.LogError("Hello!{0}", DateTime.Now.ToString("YYYY-MM-DD HH:mm:ss"));


            var keyPair = RsaUtil.GenerateFormatKeyPair(keySize: 512);

            File.WriteAllText(@"D:\public_key", keyPair.PublicKey);
            File.WriteAllText(@"D:\private_key", keyPair.PrivateKey);

            Console.WriteLine("完成");
            Console.ReadLine();
        }
Пример #11
0
 public ActionResult <string> GetUserPublicKey()
 {
     try
     {
         return(Ok(RsaUtil.GetRsaKey(false)));
     }
     catch (Exception e)
     {
         Logger.Error(e);
         return(StatusCode(500));
     }
 }
Пример #12
0
        public void OversizeTest()
        {
            /**
             * REF: https://github.com/stulzq/DotnetCore.RSA/issues/2
             *      https://www.cnblogs.com/CreateMyself/p/9853736.html
             */
            string data   = CaptchaUtil.GetCaptcha(4096);
            string cipher = RsaUtil.Encrypt(data, RSA_PUBLIC_KEY_1024);
            string sign   = RsaUtil.Sign(data, RSA_PRIVATE_KEY_1024);

            Assert.NotEmpty(cipher);
            Assert.NotEmpty(sign);
            Assert.Equal(data, RsaUtil.Decrypt(cipher, RSA_PRIVATE_KEY_1024));
            Assert.True(RsaUtil.Verify(data, sign, RSA_PUBLIC_KEY_1024));
        }
Пример #13
0
        public static void BuildPrivateKey()
        {
            var    path = MyHostingEnvironment.MapPath(_rsaPath);
            string privateKey;

            RsaUtil.CreateKey(out privateKey);
            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));
            System.IO.File.WriteAllText(path, privateKey);

            RsaUtil.GetParams(privateKey, out string modulus, out string exponent);
            _exponent   = exponent;
            _modulus    = modulus;
            _privateKey = privateKey;
            //_timeout = DateTime.Now.AddSeconds(60);
        }
Пример #14
0
        public void TrimKey_Test()
        {
            var keyPair          = RsaUtil.GenerateFormatKeyPair();
            var trimedPublicKey  = RsaUtil.TrimKey(keyPair.PublicKey);
            var trimedPrivateKey = RsaUtil.TrimKey(keyPair.PrivateKey);

            Assert.Contains("-", keyPair.PublicKey);
            Assert.Contains("-", keyPair.PrivateKey);
            Assert.DoesNotContain("-", trimedPublicKey);
            Assert.DoesNotContain("-", trimedPrivateKey);
            var rsaEncryptor = new RsaEncryptor(trimedPublicKey, trimedPrivateKey);
            var encrypted1   = rsaEncryptor.Encrypt("china");
            var decrypted1   = rsaEncryptor.Decrypt(encrypted1);

            Assert.Equal("china", decrypted1);
        }
Пример #15
0
        private byte[] GetReportBytes(int id)
        {
            Report report = db.Reports
                            .Include(r => r.ReportServer)
                            .FirstOrDefault(r => r.FrameId == id)
            ;

            string baseUrl = (report.ReportServer.BaseUrl ?? "").Trim()
            , url          = (report.Path ?? "").Trim();

            if (baseUrl.EndsWith("/"))
            {
                baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
            }

            if (!url.StartsWith("/"))
            {
                url = "/" + url;
            }

            url = string.Format(
                "{0}?{1}&rs:format=IMAGE",
                baseUrl,
                HttpUtility.UrlEncode(url)
                );

            WebClient client = new WebClient();
            string
                user   = (report.ReportServer.User ?? "").Trim(),
                domain = (report.ReportServer.Domain ?? "").Trim()
            ;

            if (!string.IsNullOrWhiteSpace(user))
            {
                client.Credentials = new NetworkCredential(
                    user,
                    RsaUtil.Decrypt(report.ReportServer.Password),
                    domain
                    );
            }

            return(client.DownloadData(url));
        }
Пример #16
0
        /*private byte[] GetReportBytes(int id)
         * {
         *  Report report = db.Frames.OfType<Report>()
         *      .Include(r => r.ReportServer)
         *      .FirstOrDefault(r => r.FrameId == id)
         *      ;
         *
         *  WebClient client = new WebClient();
         *  string
         *      user = (report.ReportServer.User ?? "").Trim(),
         *      domain = (report.ReportServer.Domain ?? "").Trim()
         *      ;
         *
         *  if (!string.IsNullOrWhiteSpace(user))
         *  {
         *      client.Credentials = new NetworkCredential(
         *          user,
         *          RsaUtil.Decrypt(report.ReportServer.Password),
         *          domain
         *          );
         *  }
         *
         *  return client.DownloadData(report.FullPath);
         * }*/

        private async Task <byte[]> GetReportBytesAsync(Report report)
        {
            var client = new WebClient();
            string
                user   = (report.ReportServer.User ?? "").Trim(),
                domain = (report.ReportServer.Domain ?? "").Trim()
            ;

            if (!string.IsNullOrWhiteSpace(user))
            {
                client.Credentials = new NetworkCredential(
                    user,
                    RsaUtil.Decrypt(report.ReportServer.Password),
                    domain
                    );
            }

            return(await client.DownloadDataTaskAsync(report.FullPath));
        }
Пример #17
0
        public void SignAndVerifyTest()
        {
            string sign;

            sign = RsaUtil.Sign(STR_EN, RSA_PRIVATE_KEY_1024);
            Assert.NotEmpty(sign);
            Assert.True(RsaUtil.Verify(STR_EN, sign, RSA_PUBLIC_KEY_1024));

            sign = RsaUtil.Sign(STR_CH, RSA_PRIVATE_KEY_1024);
            Assert.NotEmpty(sign);
            Assert.True(RsaUtil.Verify(STR_CH, sign, RSA_PUBLIC_KEY_1024));

            sign = RsaUtil.Sign(STR_EN, RSA_PRIVATE_KEY_2048);
            Assert.NotEmpty(sign);
            Assert.True(RsaUtil.Verify(STR_EN, sign, RSA_PUBLIC_KEY_2048));

            sign = RsaUtil.Sign(STR_CH, RSA_PRIVATE_KEY_2048);
            Assert.NotEmpty(sign);
            Assert.True(RsaUtil.Verify(STR_CH, sign, RSA_PUBLIC_KEY_2048));
        }
Пример #18
0
        public void Pkcs8_Pkcs1_Conver_Test()
        {
            var keyPair       = RsaUtil.GenerateKeyPair();
            var rsaEncryptor1 = new RsaEncryptor(keyPair.PublicKey, keyPair.PrivateKey);

            var pkcs8Key      = RsaUtil.Pkcs1ToPkcs8(keyPair.PrivateKey);
            var rsaEncryptor2 = new RsaEncryptor(keyPair.PublicKey, pkcs8Key);

            var d1 = rsaEncryptor1.Encrypt("123456");
            var d2 = rsaEncryptor2.Encrypt("123456");
            //Assert.Equal(d1, d2);

            var d3 = rsaEncryptor1.Decrypt(d1);

            Assert.Equal("123456", d3);
            var d4 = rsaEncryptor2.Decrypt(d2);

            var pkcs1Key = RsaUtil.Pkcs8ToPkcs1(pkcs8Key);

            Assert.Equal(keyPair.PrivateKey, pkcs1Key);
        }
Пример #19
0
        private void button1_Click(object sender, EventArgs e)

        {
            /* DES 加解密
             * string enStr = "{\"keyCol\":\"store_id,serial,paytype\",\"tableName\":\"PaytypeDetail\",\"columnNames\":[\"location_id\",\"store_id\",\"b_date\",\"serial\",\"start_time\",\"end_time\",\"paytype\",\"paytype_income\",\"time\",\"refresh_time\"],\"records\":[[\"25801\",\"25801001\",\"2018-01-0100:00:00\",\"JS0010-180101-0001\",\"2018-01-0100:00:00\",\"2018-01-0100:02:00\",\"人民币\",\"25.50\",\"2018-01-0101:02:00\",\"2018-01-0101:02:00\"],[\"25801\",\"25801001\",\"2018-01-0100:00:00\",\"JS0010-180101-0001\",\"2018-01-0100:00:00\",\"2018-01-0100:02:00\",\"微信\",\"38.50\",\"2018-01-0101:02:00\",\"2018-01-0101:02:00\"]]}";
             * this.textBox1.Text = enStr.Length + "\r\n";
             *
             *
             * string decstr = "gi14pRjG7Um6Y0mHKfuop5ekrOow2WFKiK0f/zm2rYzCIRxpOjz7o35Oq3CEAvyFV6xU+SwC6dxeiV39+Cu81VZIOyTndog+RP3K2q9JMBldXWh6Ps2rK947bRD7sSo7bLy2Iu81CyMwNSdJ5JRmfWNIGPpA+Ue5bhptSzdrnKuXpKzqMNlhSrdMuBnihYiX+jSyeToukH36+fgqFEIzrWQSjdaqHkw3OcEvNbFMQRBuGm1LN2ucq8AsTnZy1FQ9MXOlv6E+frKAr+lXeUso6yO+3UbhgPcJYVdL4RtXeITSdlqgd+a7WGv+a3/XNPs4LNN3jP31Hsu/0KEH4PqogvXTXJWJQ20LDmhUfLh2w5e6Af7h714S3i7Tn4COMlF601mnbx5CmOQedEDnws+SwTGKXh3WZsgJCUEzXnH0H//IEgUqhb+JjeereNjiENOcbLy2Iu81CyO5wyepPiSDQrdMuBnihYiXbhptSzdrnKt9i5SLBo74SrdMuBnihYiXbhptSzdrnKsK4M+MDlk7vAO766iDGmGOekFR95eO7A1svLYi7zULI6NEc7S2cyTJRYO+235qB6ZZBlfEV2NfAWy8tiLvNQsjU7A08XDIhBZu2oyPvKIeWJek4dZrDhoCt0y4GeKFiJduGm1LN2ucqwrgz4wOWTu85tToaHlKpsF6QVH3l47sDWy8tiLvNQsj18vb/DXwFbA86p9pBQKmf2y8tiLvNQsjZyerRjxGjcytBtjdL6D5y2y8tiLvNQsjB1uATkQzqMQDll+TWPE6b6AEL4jZdb+5bLy2Iu81CyMwhvIUuCO+enyBGgdrohlO5i2v0tIaO5dhV0vhG1d4hDGKXh3WZsgJ56t42OIQ05xsvLYi7zULI7nDJ6k+JINCt0y4GeKFiJduGm1LN2ucq32LlIsGjvhKt0y4GeKFiJduGm1LN2ucqwrgz4wOWTu8A7vrqIMaYY56QVH3l47sDWy8tiLvNQsjo0RztLZzJMlFg77bfmoHplkGV8RXY18BbLy2Iu81CyNTsDTxcMiEFm7ajI+8oh5Yl6Th1msOGgK3TLgZ4oWIl24abUs3a5yrCuDPjA5ZO7zm1OhoeUqmwXpBUfeXjuwNbLy2Iu81CyNOSCNlqiQvtODUVngD0JBrbLy2Iu81CyPGrHQrKryvL2FXS+EbV3iEceYOH8kBvVnsZlBikilonk66UrQmbH0UrQbY3S+g+ctsvLYi7zULIwdbgE5EM6jEA5Zfk1jxOm9YaPE+Xyvtfgtx8tRrsa77LAFxvEeBZQM=";
             *
             * string decStr = DesUtil.DecryptString(decstr);
             * this.textBox1.Text = decStr + "\r\n";
             *
             */

            string desStr = "000124";
            string result = RsaUtil.EncryptCSharp(desStr);

            this.textBox1.Text += result;
            this.textBox1.Text += "\r\n";
        }
        private async Task GetTokenAsync(AzureAccount az)
        {
            try
            {
                Match lnk = _emailRgx.Match(az.User);
                az.User = lnk.Success ? lnk.Value : "";

                if (!az.PasswordSet)
                {
                    throw new ApplicationException(Resources.ProvideAccountPassword);
                }

                TokenInfo ti = await Token.GetGrantTypePasswordAsync(
                    az.Resource,
                    az.ClientId,
                    az.ClientSecret,
                    az.User,
                    RsaUtil.Decrypt(az.Password),
                    az.TenantId
                    );

                az.RefreshToken = ti.RefreshToken;
                az.AccessToken  = ti.AccessToken;
                az.ExpiresOn    = ti.ExpiresOn;
                az.IdToken      = ti.IdToken;

                db.Entry(az).State = EntityState.Modified;
                //var errors = ModelState.Values.SelectMany(v => v.Errors).ToArray();
            }

            catch (AzureTokenException ex)
            {
                ModelState.AddModelError("User", ex.Details);
            }

            catch (ApplicationException ex)
            {
                ModelState.AddModelError("PasswordUnmasked", ex.Message);
            }
        }
Пример #21
0
        public void EncryptAndDecryptTest()
        {
            string cipher;

            cipher = RsaUtil.Encrypt(STR_EN, RSA_PUBLIC_KEY_1024);
            Assert.NotEmpty(cipher);
            Assert.Equal(STR_EN, RsaUtil.Decrypt(cipher, RSA_PRIVATE_KEY_1024));
            Assert.Equal(STR_EN, RsaUtil.Decrypt("QccbdMDHAZflCKBDrKVH/YH4Nx6XiSNUAbscDppOsIheIM1kTa3+GDnXPjM3l7xXOOHpN3f2JkjX/dfUd5SPdNqwESepO28GRzVq4j4QIg7sKQ2a1NV4jy1Zfz+ssvvyJFDk9ycnb7d0pRS9UwqO/pbgP6YS+2MQrY2r4n7gJEA=", RSA_PRIVATE_KEY_1024));

            cipher = RsaUtil.Encrypt(STR_CH, RSA_PUBLIC_KEY_1024);
            Assert.NotEmpty(cipher);
            Assert.Equal(STR_CH, RsaUtil.Decrypt(cipher, RSA_PRIVATE_KEY_1024));
            Assert.Equal(STR_CH, RsaUtil.Decrypt("OcLlLFAlMCyrgeOsqUaWIsYmBWi5EyWTU1ZnS94gkxYOGdVdkmbmJOB6/sGOfjWmhqg/5eK7VHGa4kpJAZgw5QoDglLiNlKZjCSS7BcliuZEFhhlln6h6UKYQECflgcm73OtbozgOpFG7oLhiaer1ONFMO6az0o4WSp6qBcqTck=", RSA_PRIVATE_KEY_1024));

            cipher = RsaUtil.Encrypt(STR_EN, RSA_PUBLIC_KEY_2048);
            Assert.NotEmpty(cipher);
            Assert.Equal(STR_EN, RsaUtil.Decrypt(cipher, RSA_PRIVATE_KEY_2048));

            cipher = RsaUtil.Encrypt(STR_CH, RSA_PUBLIC_KEY_2048);
            Assert.NotEmpty(cipher);
            Assert.Equal(STR_CH, RsaUtil.Decrypt(cipher, RSA_PRIVATE_KEY_2048));
        }
Пример #22
0
        /// <summary>
        /// 核对签名
        /// </summary>
        /// <returns></returns>
        public bool CheckSign(string privateKey, string modulus, string exponent, out string errMsg)
        {
            if (Timestamp <= 0)
            {
                errMsg = "timestamp is null."; return(false);
            }
            var st = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(Timestamp);

            if (Math.Abs(st.TotalSeconds) >= 5)
            {
                errMsg = "timestamp is error."; return(false);
            }

            if (string.IsNullOrWhiteSpace(RsaKey))
            {
                errMsg = "rsaKey is null."; return(false);
            }
            if (string.IsNullOrWhiteSpace(Ciphertext))
            {
                errMsg = "ciphertext is null."; return(false);
            }
            if (string.IsNullOrWhiteSpace(Sign))
            {
                errMsg = "sign is null."; return(false);
            }

            PasswordString = RsaUtil.PrivateDecrypt(privateKey, RsaKey);

            var txt  = $"{Ciphertext.ToSafeString()}|{PasswordString}|{Timestamp.ToSafeString()}|{modulus}|{exponent}";
            var hash = HashUtil.GetMd5String(txt);

            if (Sign.Equals(hash, StringComparison.OrdinalIgnoreCase) == false)
            {
                errMsg = "sign is error.";
                return(false);
            }
            errMsg = null;
            return(true);
        }
Пример #23
0
        private static void GetPrivateKey()
        {
            if (_privateKey == null /*|| _timeout == null || _timeout.Value < DateTime.Now*/)
            {
                var    path = MyHostingEnvironment.MapPath(_rsaPath);
                string privateKey;
                if (System.IO.File.Exists(path) == false)
                {
                    RsaUtil.CreateKey(out privateKey);
                    System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));
                    System.IO.File.WriteAllText(path, privateKey);
                }
                else
                {
                    privateKey = System.IO.File.ReadAllText(path);
                }

                RsaUtil.GetParams(privateKey, out string modulus, out string exponent);
                _exponent   = exponent;
                _modulus    = modulus;
                _privateKey = privateKey;
                //_timeout = DateTime.Now.AddSeconds(60);
            }
        }
Пример #24
0
 public ActionResult <string> DecryptUser(string str, Guid user)
 {
     return(Ok(RsaUtil.Decrypt(str, user)));
 }
Пример #25
0
 public ActionResult <string> Decrypt(string str)
 {
     return(Ok(RsaUtil.Decrypt(str)));
 }
Пример #26
0
 public byte[] PrivateDecrypt(byte[] bytes)
 {
     return(RsaUtil.PrivateDecrypt(_privateKey, bytes));
 }
Пример #27
0
 public ActionResult <string> GetPrivateUserKey(string id)
 {
     return(Ok(RsaUtil.GetRsaKeyString(true, Guid.Parse(id))));
 }
Пример #28
0
        public byte[] PrivateDecrypt(string txt)
        {
            var bytes = Base64.FromBase64ForUrlString(txt);

            return(RsaUtil.PrivateDecrypt(_privateKey, bytes));
        }
Пример #29
0
        protected string DecryptKey(string rsaKey)
        {
            var rsaHelper = RsaHelper.Instance;

            return(RsaUtil.PrivateDecrypt(rsaHelper.PrivateKey, rsaKey));
        }
Пример #30
0
 public byte[] PrivateEncrypt(string txt)
 {
     return(RsaUtil.PrivateEncrypt(_privateKey, System.Text.Encoding.UTF8.GetBytes(txt)));
 }