public static void SignBySecureKey(Dictionary <string, string> dictionary, string secureKey) { if (!dictionary.ContainsKey("signMethod")) { throw new UnionPayException("signMethod must Not null"); } var stringData = GetSignContent(dictionary, true, false); var signMethod = dictionary["signMethod"]; if ("11" == signMethod) { var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey); var strAfterSha256 = SHA256.Compute(strBeforeSha256); //设置签名域值 dictionary["signature"] = strAfterSha256; } else if ("12" == signMethod) { var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey); var strAfterSm3 = SM3.Compute(strBeforeSm3); //设置签名域值 dictionary["signature"] = strAfterSm3; } else { throw new UnionPayException("Error signMethod [" + signMethod + "] in SignBySecureKey. "); } }
public static bool ValidateBySecureKey(Dictionary <string, string> dictionary, string secureKey) { if (!dictionary.ContainsKey("signMethod") || !dictionary.ContainsKey("signature")) { return(false); } var result = false; var signMethod = dictionary["signMethod"]; if ("11" == signMethod) { var stringSign = dictionary["signature"]; dictionary.Remove("signature"); var stringData = GetSignContent(dictionary, true, false); var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey); var strAfterSha256 = SHA256.Compute(strBeforeSha256); result = stringSign == strAfterSha256; } else if ("12" == signMethod) { var stringSign = dictionary["signature"]; dictionary.Remove("signature"); var stringData = GetSignContent(dictionary, true, false); var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey); var strAfterSm3 = SM3.Compute(strBeforeSm3); result = stringSign == strAfterSm3; } return(result); }
public static bool ValidateBySecureKey(Dictionary <string, string> rspData, string secureKey) { if (!rspData.ContainsKey("signMethod") || !rspData.ContainsKey("signature")) { return(false); } var signMethod = rspData["signMethod"]; var result = false; if ("11".Equals(signMethod)) { var stringSign = rspData["signature"]; rspData.Remove("signature"); var stringData = GetSignContent(rspData, true, false); var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey); var strAfterSha256 = SHA256.Compute(strBeforeSha256); result = stringSign.Equals(strAfterSha256); } else if ("12".Equals(signMethod)) { var stringSign = rspData["signature"]; rspData.Remove("signature"); var stringData = GetSignContent(rspData, true, false); var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey); var strAfterSm3 = SM3.Compute(strBeforeSm3); result = stringSign.Equals(strAfterSm3); } else { return(false); } return(result); }
public static void SignBySecureKey(Dictionary <string, string> reqData, string secureKey) { if (!reqData.ContainsKey("signMethod")) { throw new Exception("signMethod must Not null"); } var signMethod = reqData["signMethod"]; var stringData = GetSignContent(reqData, true, false); if ("11".Equals(signMethod)) { var strBeforeSha256 = stringData + "&" + SHA256.Compute(secureKey); var strAfterSha256 = SHA256.Compute(strBeforeSha256); //设置签名域值 reqData["signature"] = strAfterSha256; } else if ("12".Equals(signMethod)) { var strBeforeSm3 = stringData + "&" + SM3.Compute(secureKey); var strAfterSm3 = SM3.Compute(strBeforeSm3); //设置签名域值 reqData["signature"] = strAfterSm3; } else { throw new Exception("Error signMethod [" + signMethod + "] in SignBySecureKey. "); } }
public async Task <IActionResult> Login(string username, string password, string returnUrl = null) { password = SM3.GetSM3(password); var admin = AdminEntity.Where(x => x.UserName == username && x.Password == password).First(); if (admin == null) { ViewBag.errormsg = "用户名或密码错误"; return(View()); } var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); identity.AddClaim(new Claim(ClaimTypes.Sid, admin.Id.ToString())); identity.AddClaim(new Claim(ClaimTypes.Name, admin.UserName)); identity.AddClaim(new Claim(ClaimTypes.Role, Constants.AdminRoleName)); await AuthExtension.LoginAsync(new AdminAuthenticationAttribute(), HttpContext, new ClaimsPrincipal(identity)); if (returnUrl != null) { return(Redirect(returnUrl)); } else { return(RedirectToAction("Index", "Home")); } }
public void TestCreate() { var sm3 = SM3.Create("SM3"); var source = "abc"; var hashBytes = sm3.ComputeHash(Encoding.ASCII.GetBytes(source)); var result = BitConverter.ToString(hashBytes).Replace("-", string.Empty).ToLower(); Assert.AreEqual("66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0", result); }
public IActionResult Finish(InstallModel installModel) { DbExtension.InstallDb(installModel.ToDbConfig()); var admin = new AdminEntity(); admin.UserName = installModel.AdminUser; admin.Password = SM3.GetSM3(installModel.AdminPass); admin.Insert(); var settings = new List <SettingsEntity>(); settings.Add(new SettingsEntity() { Name = "title", Value = "JXCMS", Type = "Settings" }); settings.Add(new SettingsEntity() { Name = "logo", Value = "/images/Logo.png", Type = "Settings" }); settings.Add(new SettingsEntity() { Name = "keyword", Value = "JXCMS,急速开发CMS", Type = "Settings" }); settings.Add(new SettingsEntity() { Name = "description", Value = "JXCMS是一款快速开发的CMS程序", Type = "Settings" }); settings.Add(new SettingsEntity() { Name = "copyright", Value = "JXCMS 2019", Type = "Settings" }); settings.Add(new SettingsEntity() { Name = "icp", Value = "", Type = "Settings" }); BaseEntity.Orm.Insert(settings).ExecuteInserted(); System.IO.File.Create("install.lock"); return(View()); }