/// <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> /// 创建文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCreate_Click(object sender, EventArgs e) { currentModel.Date = txtDate.Value; currentModel.UserNum = txtUserNum.Value; currentModel.AllUser = chkAllUser.Checked; currentModel.AllData = chkAllData.Checked; string savePath = lblSavePath.Text; try { //生成RSA加密的密钥信息 RSAEncryptExt.RSAKey keyPair = RSAEncryptExt.GetRASKey(); currentModel.PublicKey = keyPair.PublicKey; currentModel.PrivateKey = keyPair.PrivateKey; currentModel.Licence = licence.CreateLicence(currentModel); licence.CreateLicsenceFile(currentModel, savePath); LicenceDal dal = new LicenceDal(); dal.AddLicence(currentModel); } catch (Exception) { throw; } UICommon.ShowSuccessMsg("生成完成。"); System.Diagnostics.Process.Start(savePath); }
/// <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); }