public void GenerateFormatKeyPair_Test() { var keyPair = RsaUtil.GenerateFormatKeyPair(RSAKeyFormat.PKCS1, 1024); Assert.Contains("----", keyPair.PublicKey); Assert.Contains("----", keyPair.PrivateKey); }
// 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); } }
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); }
public override Task OnConnectedAsync() { var keyForUser = RsaUtil.GenerateRsaKey(); ClientKeys.TryAdd(Context.ConnectionId, keyForUser); return(base.OnConnectedAsync()); }
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); }
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); }
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 })); }
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(); }
public ActionResult <string> GetUserPublicKey() { try { return(Ok(RsaUtil.GetRsaKey(false))); } catch (Exception e) { Logger.Error(e); return(StatusCode(500)); } }
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)); }
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); }
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); }
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)); }
/*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)); }
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)); }
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); }
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); } }
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)); }
/// <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); }
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); } }
public ActionResult <string> DecryptUser(string str, Guid user) { return(Ok(RsaUtil.Decrypt(str, user))); }
public ActionResult <string> Decrypt(string str) { return(Ok(RsaUtil.Decrypt(str))); }
public byte[] PrivateDecrypt(byte[] bytes) { return(RsaUtil.PrivateDecrypt(_privateKey, bytes)); }
public ActionResult <string> GetPrivateUserKey(string id) { return(Ok(RsaUtil.GetRsaKeyString(true, Guid.Parse(id)))); }
public byte[] PrivateDecrypt(string txt) { var bytes = Base64.FromBase64ForUrlString(txt); return(RsaUtil.PrivateDecrypt(_privateKey, bytes)); }
protected string DecryptKey(string rsaKey) { var rsaHelper = RsaHelper.Instance; return(RsaUtil.PrivateDecrypt(rsaHelper.PrivateKey, rsaKey)); }
public byte[] PrivateEncrypt(string txt) { return(RsaUtil.PrivateEncrypt(_privateKey, System.Text.Encoding.UTF8.GetBytes(txt))); }